Как регистрировать, когда недопустимый токен-носитель отправляется на серверную часть

#java #spring-security #oauth-2.0 #jhipster #jwt-auth

#java #spring-безопасность #oauth-2.0 #jhipster #jwt

Вопрос:

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

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

 2020-10-14 10:11:37.591 DEBUG 4132 --- [  XNIO-1 task-1] s.n.www.protocol.http.HttpURLConnection  : sun.net.www.MessageHeader@77674d5d5 pairs: {GET /auth/realms/p
latform-development/protocol/openid-connect/certs HTTP/1.1: null}{Accept: application/json, application/jwk-set json}{User-Agent: Java/11.0.7}{Host: sso.eva-int.c
om}{Connection: keep-alive}
2020-10-14 10:11:37.630 DEBUG 4132 --- [  XNIO-1 task-1] s.n.www.protocol.http.HttpURLConnection  : sun.net.www.MessageHeader@2527b0a66 pairs: {null: HTTP/1.1 200
 OK}{Connection: keep-alive}{Cache-Control: no-cache}{Content-Type: application/json}{Content-Length: 1703}{Date: Wed, 14 Oct 2020 17:11:36 GMT}
2020-10-14 10:11:37.649 DEBUG 4132 --- [  XNIO-1 task-1] jdk.event.security                       : X509Certificate: Alg:SHA256withRSA, Serial:17251f0f612, Subjec
t:CN=platform-development, Issuer:CN=platform-development, Key type:RSA, Length:2048, Cert Id:1603036153, Valid from:5/26/20, 10:02 AM, Valid until:5/26/30, 10:04
 AM
  

Когда я отправляю недопустимый токен, я получаю ответ со статусом 401 и заголовками с надписью «invalid_token», что совершенно нормально, но в приложении ничего не регистрируется.

Похоже, что код, который обрабатывает это, исходит из зависимости Spring Security. Есть ли какой-либо способ заставить его выйти из системы с дополнительной информацией?

Комментарии:

1. Какой тип аутентификации вы выбрали?

Ответ №1:

Spring Security имеет собственное ведение журнала, вам просто нужно его включить.

Поместите в свое приложение следующее.properties:

 logging.level.org.springframework.security=DEBUG
  

Это то же самое и для большинства других модулей Spring.

или

Попробуйте установить свойство в вашей конфигурации ведения журнала, например logback .

Вот приложение.Версия yml:

 logging:
  level:
    org:
      springframework:
        security: DEBUG
  

Комментарии:

1. Я не вижу никаких дополнительных выходных данных при включении их в мой application.yml. Использование @EnableWebSecurity(debug = true) в конфигурации безопасности дает мне вывод цепочки фильтров безопасности для всех запросов, но по-прежнему не регистрирует недопустимый токен, кроме этого.

2. То, что вы сделали, это другое дело, это не включит ваши журналы безопасности Spring. Перейдите по ссылке ниже, чтобы лучше понять весеннюю регистрацию. Учебное пособие по весеннему логированию

3. Поэтому, когда я запускаю приложение с аргументом -Dspring-boot.run.arguments=--logging.level.org.springframework.security=DEBUG , я получаю дополнительную регистрацию, которую я ищу. Помещаю это в мое приложение. Однако yml не выдает выходные данные.

4. В итоге это сработало, но я поместил его в неправильный application.yml. Спасибо!