#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. Спасибо!