我有一个用户表单。
我想在用户提交表单时将该表单中的新密码值与同一用户已保存在DB中的密码进行比较。
但是当我尝试从DB(findByUniqueKey)获取当前用户数据时,它会在检索密码字段之前使用新值更新密码字段。
所以我的问题是:如何在db中获取旧密码?
非常感谢
这是我的简化控制器:
public class UserActionBean {
@SpringBean
private UserDAO userDAO;
private User currentUser;
private User parentUser;
@Before(stages = LifecycleStage.BindingAndValidation)
public void preView() {
[...]
parentUser = userDAO.findByUniqueKey("login", getContext().getAuthentication().getLogin());
[...]
}
@HandlesEvent("updateUser")
public Resolution addUser() {
[...]
}
@ValidationMethod(on = {"updateUser"})
public void checkForm(ValidationErrors errors) {
User oldUser = userDAO.findByUniqueKey("login", currentUser.getLogin());
if (oldUser.getPassword().equals(currentUser.getPassword())) {
// oldUser password is the same as the currentUser password
// Even if currentUser password is changed at submission.
}
}
// getters / Setters
}