Grails 4 и Spring Security 4 — Как обновить имя пользователя

#java #spring #grails #spring-security

#java #весна #граали #spring-безопасность

Вопрос:

У меня есть довольно простое приложение Grails 4, которое использует плагин Spring Security. Я не понимаю, как позволить пользователю изменить свое имя пользователя, а затем повторно пройти проверку подлинности. В моем приложении имя пользователя — это адрес электронной почты. Вся система безопасности работает нормально. Но допустим, пользователь хочет обновить свой адрес электронной почты в моем приложении.

В настоящее время пользователь может обновить свой пароль, и это работает нормально. После того, как новое значение пароля установлено (и, конечно же, проверено, проверено, сопоставлено и все такое прочее) и сохранено, я вызываю

 springSecurityService.reauthenticate user.username
 

Однако при обновлении имени пользователя я не могу просто изменить имя пользователя в объекте user, а затем вызвать

 springSecurityService.reauthenticate user.username
 

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

Я думаю, что я, вероятно, упускаю что-то основное в моем потоке процессов или что-то в этом роде, и мне хотелось бы получить какое-то направление.

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

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

2. @injecteer Мне нравится этот ответ. Я буду считать это решенным.