сброс пароля и перенаправление тимилиф - PullRequest
0 голосов
/ 08 января 2019

У меня есть Spring Boot (1.5.6) с Spring Security (4.2) с приложением ThymeLeaf, которое позволяет пользователю сбросить свой пароль. Все HTML-страницы находятся в src / resources / templates. Основной поток:

  1. пользователь предоставляет имя пользователя (через resetPage.html)
  2. учетные данные очищены
  3. токен генерируется и отправляется по электронной почте на имя пользователя
  4. пользователь нажимает URL-адрес электронной почты для перенаправления на страницу сброса пароля (changePassword.html), чтобы пользователь мог создать новый пароль
  5. новый пароль отправляется на службу, где он сохраняется и обрабатывается этим кодом:

    @ RequestMapping (значение = "/ user / savePassword", метод = RequestMethod.POST) public String savePassword (языковой стандарт локали, @RequestParam ("имя пользователя") String username, @RequestParam ("пароль") Строковый пароль, модель) {

    // логика идет сюда ...

    "вернуть" логин "; }

На данный момент все работает как нужно. БД обновлена, ошибок в журнале консоли нет.

  1. Пользователю предлагается войти на страницу входа (хотя на панели браузера отображается «savePassword»). Имя пользователя и новый пароль предоставлены, и сервер возвращает 403. В консоли нет ошибки, только признаком того, что что-то пошло не так, является Chrome Developer Tools, возвращающий 403 из POST входа в систему. По умолчанию отображается страница ошибки.

  2. Если я перехожу на домашнюю страницу и затем на страницу входа, я могу аутентифицироваться с новыми измененными учетными данными.

Я не вижу, откуда исходит ошибка или почему. Я попытался запустить через "java -jar" и с отладчиком IDE с включенными комментариями отладки. Никаких ошибок или сообщений вообще не генерируется. Сеанса нет, пользователь не прошел аутентификацию, так почему бы выбрасывать 403 (при условии через Spring Security)?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

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

0 голосов
/ 08 января 2019
  1. Проверьте ваши методы аутентификации и убедитесь, что оба пароля совпадают в БД или нет.
  2. Убедитесь, что при смене нового пароля вы используете passwordEncoders ?. Потому что ошибка 403 запрещена.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...