Java Spring启动登录错误
我正在使用Spring的Java Spring启动登录错误,java,spring-mvc,spring-boot,Java,Spring Mvc,Spring Boot,我正在使用Spring的PasswordEncoder创建和更新用户密码,但是,当我更新用户密码时,我得到了一个错误 问题是,当我创建一个新用户并使用他们的凭据登录时,它工作正常。另一方面,当我更新他们的密码(使用PasswordEncoder)时,新密码会生成无效的用户名/密码错误,尽管数据库中的密码确实更新了。以下是更新密码的逻辑 @PostMapping("/updatepassword") public String updateUserPassword(UserEntity userE
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";
}
您正在将该值设置为实体中已哈希值的哈希值,而不是请求中的值。具体来说,就是改变
userEntity.setUserpassword(passwordEncoder.encode(userEntity.getUserpassword()));
到
编辑以添加您可能也希望首先对
newPass
进行空检查。您将该值设置为实体中已哈希值的哈希值,而不是请求中的值。具体来说,就是改变
userEntity.setUserpassword(passwordEncoder.encode(userEntity.getUserpassword()));
到
编辑以添加您可能也希望首先对
newPass
进行空检查。@IssmeilB。如果此答案解决了您的问题,请将其标记为正确答案。@IssmeilB。如果此答案解决了您的问题,请将其标记为正确答案。