【发布时间】:2019-04-30 05:07:43
【问题描述】:
我在我的更新方法中实现了一个方法,用于检查 UpdateForm 中的给定密码是否与来自 db 的编码密码匹配。
我还没有找到任何教程或解决方案,但我尝试了一些东西但没有任何效果。
这是我的更新方法
@RequestMapping(value = {"/home/editUser"}, method = RequestMethod.POST)
public String home(@ModelAttribute("editUser") User editUser, Model model) {
logger.info("/home/editUser");
try {
User user = userService.findById(editUser.getId());
if (!user.equals(editUser)) {
//old password matching
if (user.getPassword_1() == editUser.getPassword_1()) {
//encode new password
editUser.setPassword(PassEncoding.getInstance().passwordEncoder.encode(editUser.getPassword()));
//update
userService.update(editUser);
model.addAttribute("msg", "success");
}
else {
System.out.println("not match");
}
} else {
model.addAttribute("msg", "same");
}
} catch (Exception e) {
model.addAttribute("msg", "fail");
logger.error("editUser: " + e.getMessage());
}
model.addAttribute("home", editUser);
return "home";
}
Password_1 是我的 oldpassword (actual) ,但我不知道如何实现密码编码器,它给出了
不匹配
提前感谢您的帮助:)
我刚试过
if(PassEncoding.getInstance().passwordEncoder.matches(editUser.getPassword_1(), user.getPassword_1()))
但它给了
不匹配
它的工作与
if(PassEncoding.getInstance().passwordEncoder.matches(editUser.getPassword_1(), user.getPassword()))
非常感谢!
【问题讨论】:
标签: java spring-boot spring-security spring-data-jpa