Отключить ведение журнала безопасности Spring - PullRequest
0 голосов
/ 30 сентября 2019

Мы используем пользовательский фильтр для нашей аутентификации.

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

Каждый раз, когда вызывается API, наш фильтр срабатывает, что приводит к печати большого количества журналов на консоли. Эти журналы сами исходят из BasicAuthenticationFilter.class (который расширен наш Фильтр)

if (this.authenticationIsRequired(username)) {
                UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, tokens[1]);
                authRequest.setDetails(this.authenticationDetailsSource.buildDetails(request));
                Authentication authResult = this.authenticationManager.authenticate(authRequest);
                if (debug) {
                    this.logger.debug("Authentication success: " + authResult);
                }

                SecurityContextHolder.getContext().setAuthentication(authResult);
                this.rememberMeServices.loginSuccess(request, response, authResult);
                this.onSuccessfulAuthentication(request, response, authResult);
            }

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

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Существует несколько способов обработки одного и того же

Из командной строки

-Dlogging.level.org.springframework.security.web.authentication.www=OFF

Из конфигурации регистратора

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

Согласно странице Spring здесь 26.4 Уровни записи

Все поддерживаемые системы ведения журнала могутустановить уровни ведения журнала в среде Spring (например, в application.properties) с помощью logging.level. = где уровень - один из TRACE, DEBUG, INFO, WARN, ERROR, FATAL или OFF. Корневой регистратор может быть настроен с помощью logging.level.root.

Подробнее читайте учебник здесь

2 голосов
/ 30 сентября 2019

В Springboot уровень регистрации может быть установлен как TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF. Установка следующего в application.yml или application.properties может настроить уровень корневого логгера:

logging.level.root=warn

Помимо этого, Springboot также позволяет устанавливать уровни логирования в соответствии с группой или классом.

Часто полезно иметь возможность группировать связанные регистраторы, чтобы они могли быть настроены одновременно. Например, вы обычно можете изменить уровни ведения журнала для всех связанных с Tomcat средств ведения журнала, но не можете легко запомнить пакеты верхнего уровня.

Чтобы помочь с этим, Spring Boot позволяет вам определять группы ведения журнала в вашей среде Spring. ,Например, вот как вы можете определить группу «tomcat», добавив ее в ваше application.properties:

logging.group.tomcat = org.apache.catalina, org.apache.coyote, org.apache. tomcat

На самом деле springbobot предоставляет нам возможность устанавливать уровни ведения журнала для классов. Таким образом, в вашем случае вы можете установить уровень ведения журнала для своего класса Filter как ERROR, чтобы нежелательные журналы не генерировались из него, или установить его на OFF. Другой способ - отключить ведение журнала для всей группы безопасности Spring (это не рекомендуется, поскольку вы можете потерять много журналов, которые могут оказаться полезными):

logging.level.com.security.BasicAuthenticationFilter=ERROR

Чтение Документ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...