У меня есть фронтальное приложение (угловое).Для аутентификации я использую Spring Security oauth.Я также использую токены JWT.Все формы аутентификации (создание учетной записи, логин, смена пароля ...) обрабатываются на стороне Spring.
Если я перезагружаю сервер аутентификации во время входа в систему, а затем перехожу в мое переднее приложение, все работаетхорошо, так как мой JWT не истекает, он все еще действителен.
У меня есть WS для доступа к форме «Изменить пароль».Для этого WS требуется аутентификация:
.antMatchers("/user/updatePassword").authenticated()
Если я сразу же после перезапуска сервера аутентификации вызываю WS "/ user / updatePassword", меня больше не считают аутентифицированным, а затем меня перенаправляют на входform -> Это нормально
Но если я сделаю такой сценарий:
Перезапустите сервер аутентификации во время регистрации
Перейдитенемного на моей угловой части -> некоторые запросы на токен отправляются на сервер аутентификации.
Сервер аутентификации устанавливает для Authentication.isAuthenticated () значение true (поскольку токен все еще действует).
Попробуйте вызвать "/ user/ updatePassword "для отображения формы" Изменить пароль "
В это время
SecurityContextHolder.getContext().getAuthentication().isAuthenticated()
== true
, но
SecurityContextHolder.getContext().getAuthentication().getPrincipal()
содержит объект User, но содержит только нулевые значения, поэтому я не могу определить текущего пользователя или проверить действительность старого пароля.
Я должен что-то пропустить, но не могу найти чтои где?Может быть, я должен получить текущего пользователя, но я не знаю как.