Ошибка входа в Spring Boot - PullRequest
0 голосов
/ 28 мая 2018

Я использую Spring * PasswordEncoder для создания и обновления пароля пользователя, однако, когда я обновляю пароль пользователя, я получаю сообщение об ошибке.

Проблема заключается в том, что я создаю нового пользователя и использую его учетные данные.чтобы войти, все работает нормально.С другой стороны, когда я обновляю их пароль (с помощью PasswordEncoder), новый пароль генерирует неверное имя пользователя / ошибку пароля, несмотря на тот факт, что пароль действительно обновляется в базе данных.Ниже приведена логика обновления пароля:

@PostMapping("/updatepassword")
public String updateUserPassword(UserEntity userEntity, Model model, 
                  @RequestParam(name = "useridpass") Long userIdFromUpdatePass, 
                  @RequestParam(required = false, name = "usernewpass") String newPass) {

    userEntity = userRegisterRepository.findById(userIdFromUpdatePass);
    userEntity.setUserpassword(passwordEncoder.encode(userEntity.getUserpassword()));
    userRegisterRepository.save(userEntity);
    return "redirect:/jobs";
}

1 Ответ

0 голосов
/ 28 мая 2018

Вы устанавливаете значение в хэш уже хешированного значения в объекте вместо значения из запроса.В частности, измените

userEntity.setUserpassword(passwordEncoder.encode(userEntity.getUserpassword()));

на

userEntity.setUserpassword(passwordEncoder.encode(newPass));

EDITED TO ADD Вы также можете сначала сбросить нулевую проверку newPass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...