Riaa коррекция. RIAA-коррекция для виниловых пластинок: что это такое и зачем нужна

Что такое RIAA-коррекция. Для чего она применяется при записи и воспроизведении виниловых пластинок. Как работает RIAA-коррекция. Какие преимущества дает использование стандарта RIAA.

Что такое RIAA-коррекция и когда она появилась

RIAA-коррекция (от англ. Recording Industry Association of America) — это стандарт частотной коррекции, применяемый при записи и воспроизведении виниловых пластинок. Данный стандарт был утвержден в 1955 году Ассоциацией звукозаписывающей индустрии Америки.

До появления единого стандарта RIAA разные производители пластинок использовали собственные характеристики записи, что создавало определенные сложности при воспроизведении. Требовалось предусматривать в усилителях несколько видов коррекции или использовать регуляторы тембра для компенсации различий.

С ростом популярности виниловых пластинок и увеличением количества производителей необходимость в едином стандарте стала очевидной. RIAA-коррекция решила эту проблему, став общепринятым мировым стандартом записи и воспроизведения винила.


Принцип работы RIAA-коррекции

Суть RIAA-коррекции заключается в предыскажении частотной характеристики сигнала при записи и обратной коррекции при воспроизведении. При записи низкие частоты ослабляются, а высокие усиливаются. При воспроизведении происходит обратный процесс — низкие частоты усиливаются, а высокие ослабляются.

Такой подход позволяет решить сразу несколько задач:

  • Уменьшить ширину дорожки на низких частотах, что дает возможность записать больше музыки на пластинку
  • Снизить уровень искажений на низких частотах
  • Улучшить соотношение сигнал/шум на высоких частотах
  • Сделать запись более устойчивой к внешним помехам

Характеристика RIAA-коррекции

Частотная характеристика RIAA-коррекции описывается тремя ключевыми точками:

  • 50 Гц — соответствует постоянной времени 3180 мкс
  • 500 Гц — соответствует постоянной времени 318 мкс
  • 2122 Гц — соответствует постоянной времени 75 мкс

Эти три точки определяют зигзагообразную форму кривой RIAA-коррекции. На частотах ниже 50 Гц и выше 2122 Гц характеристика имеет наклон 6 дБ на октаву. В диапазоне 500-2122 Гц характеристика практически линейна.


Реализация RIAA-коррекции в фонокорректорах

Для правильного воспроизведения виниловых пластинок необходимо применять обратную RIAA-коррекцию в фонокорректоре. Существует множество схемных решений для реализации RIAA-коррекции:

  • Пассивные RC-цепи
  • Активные схемы на операционных усилителях
  • Схемы на дискретных транзисторах
  • Ламповые схемы

Выбор конкретной реализации зависит от требований к качеству звучания, стоимости и других факторов. Наиболее распространены активные схемы на операционных усилителях как оптимальные по соотношению цена/качество.

Преимущества использования RIAA-коррекции

Применение единого стандарта RIAA-коррекции дает ряд важных преимуществ:

  1. Совместимость пластинок разных производителей
  2. Увеличение длительности звучания пластинки
  3. Снижение уровня искажений
  4. Улучшение соотношения сигнал/шум
  5. Повышение устойчивости к внешним помехам
  6. Упрощение конструкции проигрывателей и усилителей

Благодаря этим преимуществам RIAA-коррекция позволила значительно улучшить качество звучания виниловых пластинок и способствовала широкому распространению этого формата звукозаписи.


Особенности реализации RIAA-коррекции

При проектировании фонокорректоров с RIAA-коррекцией необходимо учитывать ряд важных моментов:

  • Точность соблюдения частотной характеристики
  • Минимизация собственных шумов
  • Линейность амплитудной характеристики
  • Устойчивость схемы
  • Согласование входного сопротивления с головкой звукоснимателя

Для достижения высокого качества звучания важно обеспечить точное соответствие характеристики фонокорректора стандарту RIAA. Отклонения не должны превышать 0.5 дБ во всем частотном диапазоне.

Альтернативные стандарты коррекции

Хотя RIAA стал основным мировым стандартом, существовали и другие системы частотной коррекции для грамзаписи:

  • Columbia LP — использовалась компанией Columbia Records
  • NARTB — применялась в радиовещании
  • FFRR — разработка компании Decca Records
  • API — европейский стандарт, аналогичный RIAA

Однако эти альтернативные стандарты не получили широкого распространения и в настоящее время практически не используются. RIAA остается единственным актуальным стандартом для виниловых пластинок.


Влияние RIAA-коррекции на качество звука

Правильно реализованная RIAA-коррекция позволяет добиться высокого качества звучания виниловых пластинок. Однако некоторые аудиофилы считают, что коррекция вносит свой «отпечаток» в звук. Это связано с особенностями реализации корректирующих цепей.

Основные факторы влияния RIAA-коррекции на звук:

  • Точность соблюдения частотной характеристики
  • Качество используемых компонентов
  • Уровень собственных шумов корректирующих цепей
  • Линейность амплитудной характеристики

При грамотном проектировании фонокорректора влияние RIAA-цепей на звук можно свести к минимуму. Многие производители high-end аппаратуры уделяют особое внимание качеству реализации RIAA-коррекции.

Как проверить точность RIAA-коррекции?

Для проверки точности RIAA-коррекции используются специальные измерительные пластинки с записанными тестовыми сигналами. При воспроизведении такой пластинки через проверяемый фонокорректор измеряется его амплитудно-частотная характеристика.

Основные способы проверки:


  1. Использование анализатора спектра
  2. Применение специализированных измерительных комплексов
  3. Измерение по точкам с помощью генератора и вольтметра

Для качественных фонокорректоров отклонение от стандартной кривой RIAA не должно превышать ±0.5 дБ во всем диапазоне частот.


RIAA винил коррекция, что это такое и для чего

АудиоГик >> ВИНИЛ

Опубликовано: Автор: Небесный Андрей

Стандарт RIAA был утвержден еще в 1955 году. До этого времени фирмы изготовители пластинок делали записи по самым различным, зачастую собственным стандартам на характеристики. Такое положение требовало предусматривать в усилителе несколько видов коррекции грамзаписей или же использовать регуляторы тембра.

По мере распространения грампластинок, как основных носителей звука, такой подход становился все более и более некорректным. Количество фирм записи росло, а с ними росло и количество стандартов.

По этим причинам Международной электротехнической комиссией (МЭК) с 1958 г. была принята коррекция по стандарту RIAA (Recording Industries Association of America), которая вошла в стандарты большинства стран, например ГОСТ 7893-72, DIN 45 541.

Запись на пластинки осуществляется головкой-резцом. Скорость движения резца около точки равновесия (СЧ область) прямо пропорциональна значению подаваемого на него сигнала. Следовательно, при постоянном по амплитуде сигнале скорость также остается постоянной. А амплитуда резца и, соответственно, ширина канавки будут обратно пропорциональны частоте сигнала. Говоря проще, на высоких частотах ширина канавки буде уменьшаться и соотношение сигнал/шум ухудшится. На низких частотах ширина канавки увеличивается, что требует увеличения расстояния между канавками и приводит к повышению уровня искажений. Из всего этого и следует необходимость уменьшения амплитуды на НЧ и ее увеличение на ВЧ. Применение RIAA коррекции в конечном счете приводит к улучшению соотношения сигнал/шум, выравниванию и уменьшению ширины дорожек на пластинке и, соответственно, к большей продолжительности звучания одной пластинки.

Характеристика записи, утвержденная стандартом RIAA пригодна как для моно-, так и для стерео- записи.

  • Зона низких частот (НЧ), где сигнал затухает на 6 дБ на октаву
  • Зона средних частот (СЧ), где на частоте 1кГц на уровне 0 дБ находится точка перегиба
  • Зона высоких частот (ВЧ), где сигнал повышается на 6 дБ на октаву.

Такая характеристика получается с помощью трех постоянных времени τ

  • 3180мкс — соответствующей 50Гц
  • 318мкс — соответствующей 500Гц
  • 75мкс — соответствующей 2100Гц

Эти три точки определяют зигзагообразность кривой записи, а три постоянные времени используются при расчетах величин элементов корректирующих фильтров.

Кристаллические звукосниматели, которые использовались ранее имели обратную характеристику и не требовали корректировки т.к. частотная компенсация получалась автоматически. Однако такие звукосниматели не отвечают высоким звуковым требованиям и были полностью вытеснены магнитными звукоснимателями. Магнитные звукосниматели, в свою очередь имеют линейную частотную характеристику. Что вызывает необходимость использования RIAA — корректора сигнала звукоснимателя.

Существует колоссальное количество схемных решений подобных корректоров. Они реализуются и на лампах, и на транзисторах, и на операционных усилителях. Несложные схемы, доступные для повторения, отвечающие стандарту RIAA винил коррекции, подробно рассмотрены в статье Винил корректор, проверенные простые схемы.

Небесный Андрей/ автор статьи

Привет! В этом окошке авторы блогов любят мериться крутостью биографий. Мне же будет гораздо приятнее услышать критику статей и блога в комментариях. Обычный человек, который любит музыку, копание в железе, электронике и софте, особенно когда эти вещи пересекаются и составляют целое, отсюда и название — АудиоГик. Материалы этого сайта — личный опыт, который, надеюсь, пригодится и Вам. Приятно, что прочитали 🙂 

Это будет даже больше, чем спасибо:

Какая нам нужна коррекция в RIAA? — Аналоговые источники сигнала

KAA написал(а):

Из требования одинаковой мощности совершенно не вытекает, что и напряжения, и токи должны быть одинаковы. Тем более, что последнее для индуктивных и емкостных цепей в принципе невыполнимо.

Нажмите для раскрытия…

Возьмём простую схему коррекции:

1) (RC) — в горизонтальной ветви выходное сопротивление каскада R2, нагруженное на вертикальную ветвь из ёмкости C1, зашунтированной резистором R1 утечки следующего каскада.

Передаточная функция К = Ко / (Т1*s + 1), Т1 = R1 * R2 *C1/ (R1 + R2), Ко = R1.

2) (RL) — в горизонтальной ветви выходное сопротивление каскада R2 и индуктивность L1. В вертикальной ветви резистор утечки сетки следующего каскада R2.

Передаточная функция К = Ко / (Т1 * s + 1), Т1 = L1 / (R1 + R2), Ko =1 / (1 + R2/R1).

Графики ЛАХ передаточных функций абсолютно идентичны. Скорость спада -20 дБ/декаду.
Например, В.В.Солодовников «Элементы систем автоматического регулирования», часть 2, Гос. научно-техническое издательство машиностроительной литературы, М., 1959 г, стр.

90-91.

Одинаковые коэффициенты передачи допускают одинаковую нагрузку для каскада, т.е. работу при одинаковом токе и напряжении каскада.

Это равенство напряжений на входе цепей специально оговорено и отображено на графиках ЛАХ данных цепей коррекции в указанной монографии. Данные схемы позволяют получить, разумеется, равные напряжения на их выходе в зависимости от подаваемого сигнала.

===========

Да, и из чистой логики следует, что, например, на Г-образной цепи, состоящей из двух равных резисторов — в горизонтальной ветви R2 и в вертикальной ветви R1, получается коэффициент передачи К = 0,5 для всех частот в идеальном случае.

Заменим R1 вертикальной ветви на С1. Потребуем, чтобы для некоторой, наперёд известной частоты, сопротивление конденсатора было Хс = R1.
Разумеется, для данной частоты К = 0,5.

Теперь заменим R2 горизонтальной ветви на L1, потребовав, чтобы для той же частоты сопротивление L1 было равно R2. Разумеется, для этой частоты К = 0,5.

Очевидно, что каскад «видит» такие цепи как равноценные по модулю комплексного сопротивления. При одинаковых нагрузках на каскад сохраняются и равные напряжения, и равные токи на выходе каскада, т.е. на входе любой из этих цепей коррекции.

==========

Именно такое построение схем цепей коррекции и предлагаю считать условием корректного сравнения двух типов цепей коррекции, — RC и LR.

Сначала нужно услышать именно уверенное слуховое отличие в звучании этих цепей коррекции при равенстве соответственно входных и выходных напряжений на этих разных по элементной базе цепях на заданной частоте. ЛАХ той и другой цепей желательно тщательно измерить, чтобы их относительная идентичность была макисмально близкой.

==========

Коррекцию же RLx для сравнения нельзя считать равноценной по замещению коррекции простой цепи RC, поскольку появляется дополнительный, третий элемент (х).

При наличии достоверной схемы замещения коррекции RLx, а ещё лучше её точной ЛАХ, можно попробовать подобрать соответствующую ей по ЛАХ схему из некоторого набора R и С для более или менее эквивалентного замещения и элемента (х). И лишь тогда слуховое сравнение можно будет считать достаточно корректным.

Вот и все мои замечания по корректности слуховых сравнений, сделанных уважаемыми мною коллегами у Евгения Комиссарова.
Я ничуть не ставлю под сомнение их выводы.

Я ставлю под сомнение достаточность соблюдения идентичности ЛАХ для каждой цепи, соблюдение неизменности напряжения на выходе каскада, питающего переключаемые цепи коррекции.
Мне бы предварительно, перед прослушиванием, желательно иметь уверенность, подтверждённую измерениями, что мои сомнения напрасны. Тогда и слушать можно с лёгким… ухом…

Пардон за казуистику. 🙄

Сеть выравнивания RIAA — твердотельный фонокорректор

Как уже упоминалось, топология схемы, которая будет использоваться для выравнивания RIAA, будет топологией активной фильтрации. Это означает, что предусилитель будет использовать подходящую RC-цепь в цепи обратной связи предусилителя. Непосредственная конструкция этой схемы, основанная на анализе малых сигналов схемы предусилителя, довольно громоздка, и я обнаружил, что сложность анализа растет довольно быстро.

Изучая различные топологии предусилителей, я заметил, что во многих конструкциях использовались

аналогичные RC-цепи для выполнения необходимой коррекции. Один общий подход был изложен доктором Серджио Франко в его учебнике «Проектирование операционных усилителей и аналоговых интегральных схем». Хотя в его примере используется операционный усилитель, такой подход к проектированию все же оказался приемлемым для этого конкретного приложения.

Ключевым моментом здесь является то, что схема предусилителя, как и операционный усилитель, использует дифференциальный входной каскад, который сравнивает входной сигнал (от проигрывателя) с частотно-зависимой копией выходного сигнала. Результатом частотно-зависимой обратной связи, используемой по определению, является фильтрация. Путем соответствующего выбора реактивных компонентов в цепи обратной связи достигается желаемый отклик RIAA. Схема, из которой можно получить значения этих компонентов, показана ниже:

Схема для определения сетевых компонентов RIAA


Можно показать, что передаточная функция для схемы:

Где:


значения компонентов остаются. Чтобы помочь в этом процессе, была написана функция Matlab, которая принимала выбранное пользователем значение для C 2 , а затем вычисляла оставшиеся емкости и сопротивления и выводила их значения. Чтобы начать сужать фактические значения, которые будут использоваться в схеме, я разработал два критерия. Во-первых, детали легко достать, желательно со стандартными значениями «десятилетия». Второй критерий заключается в том, что значения сопротивления должны поддерживаться на низком уровне, чтобы свести к минимуму их шумовой вклад в сигнал.

После нескольких итераций я пришел к следующим значениям:


Стоит отметить пару вещей. Предполагается, что C 1 оказывает незначительное влияние на цепь при условии, что его значение достаточно велико. В результате он опущен в приведенных выше выводах. Условием для этого является то, что R 1  должно быть намного больше, чем C 1 на низкой частоте (≤ 20 Гц). Именно C 1 полностью определяет отклик в этой точке, поэтому, изменяя его значение, можно обеспечить низкочастотный спад или фильтрацию гула. Поскольку это считалось желательным эффектом, было выбрано значение 470 мкФ, так как оно обеспечивало затухание до 20 дБ по мере приближения отклика к постоянному току, но существенно не меняло отклик в «слышимых» частотах от 20 до 20 Гц. диапазон кГц.

Остальные значения меня очень устроили. Благодаря использованию последовательных и параллельных соединений RC-цепочка может быть построена с использованием стандартных значений компонентов, а общее сопротивление остается в пределах примерного диапазона, на который я надеялся. Принципиальную схему выбранных значений можно увидеть ниже:

Сеть RC для RIAA Eq.


Тестирование частотной характеристики показало, что выбранные значения вполне подходят для выполнения уравнения RIAA. Подробнее об этом в разделах, посвященных окончательным испытаниям и измерениям.

Gale Apps — Технические трудности

Приложение, к которому вы пытаетесь получить доступ, в настоящее время недоступно. Приносим свои извинения за доставленные неудобства. Повторите попытку через несколько секунд.

Если проблемы с доступом сохраняются, обратитесь за помощью в наш отдел технической поддержки по телефону 1-800-877-4253. Еще раз спасибо, что выбрали Gale, обучающую компанию Cengage.

org.springframework.remoting.RemoteAccessException: невозможно получить доступ к удаленной службе [authorizationService@theBLISAuthorizationService]; вложенным исключением является com.zeroc.Ice.UnknownException unknown = «java.lang. IndexOutOfBoundsException: индекс 0 выходит за границы для длины 0 в java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) в java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) в java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) в java.base/java.util.Objects.checkIndex(Objects.java:372) в java.base/java.util.ArrayList.get(ArrayList.java:458) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.populateSessionProperties(LazyUserSessionDataLoaderStoredProcedure.java:60) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.reQuery(LazyUserSessionDataLoaderStoredProcedure.java:53) в com.gale.blis.data.model.session.UserGroupEntitlementsManager.reinitializeUserGroupEntitlements(UserGroupEntitlementsManager.java:30) в com.gale. blis.data.model.session.UserGroupSessionManager.getUserGroupEntitlements(UserGroupSessionManager.java:17) в com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getProductSubscriptionCriteria(CrossSearchProductContentModuleFetcher.java:244) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getSubscribedCrossSearchProductsForUser(CrossSearchProductContentModuleFetcher.java:71) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getAvailableContentModulesForProduct(CrossSearchProductContentModuleFetcher.java:52) на com.gale.blis.api.authorize.strategy.productentry.strategy.AbstractProductEntryAuthorizer.getContentModules(AbstractProductEntryAuthorizer.java:130) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.isAuthorized(CrossSearchProductEntryAuthorizer. java:82) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.authorizeProductEntry(CrossSearchProductEntryAuthorizer.java:44) на com.gale.blis.api.authorize.strategy.ProductEntryAuthorizer.authorize(ProductEntryAuthorizer.java:31) в com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody0(BLISAuthorizationServiceImpl.java:57) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody1$advice(BLISAuthorizationServiceImpl.java:61) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize(BLISAuthorizationServiceImpl.java:1) в com.gale.blis.auth.AuthorizationService._iceD_authorize(AuthorizationService.java:97) в com.gale.blis.auth.AuthorizationService._iceDispatch(AuthorizationService.java:406) в com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221) в com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI. java:2706) на com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292) в com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1203) в com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412) в com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7) в com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:781) в java.base/java.lang.Thread.run(Thread.java:834) » org.springframework.remoting.ice.IceClientInterceptor.convertIceAccessException(IceClientInterceptor.java:348) org.springframework.remoting.ice.IceClientInterceptor.invoke(IceClientInterceptor.java:310) org.springframework.remoting.ice.MonitoringIceProxyFactoryBean. invoke(MonitoringIceProxyFactoryBean.java:71) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) com.sun.proxy.$Proxy151.authorize(Неизвестный источник) com.gale.auth.service.BlisService.getAuthorizationResponse(BlisService.java:61) com.gale.apps.service.impl.MetadataResolverService.resolveMetadata(MetadataResolverService.java:65) com.gale.apps. controllers.DiscoveryController.resolveDocument(DiscoveryController.java:57) com.gale.apps.controllers.DocumentController.redirectToDocument(DocumentController.java:22) jdk.internal.reflect.GeneratedMethodAccessor356.invoke (неизвестный источник) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) org. springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:895) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:808) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) org. springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:626) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax. servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) com.gale.common.http.filter.SecurityHeaderFilter.doFilterInternal(SecurityHeaderFilter.java:29) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.owasp.validation.GaleParameterValidationFilter.doFilterInternal(GaleParameterValidationFilter.java:97) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal (WebMvcMetricsFilter.java:96) org. springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org. apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) org.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *