public void updatePassword() {
SysUser model = SysUser.dao.findById(getSessionUser().getId());
//System.out.println(getPara("model.password"));
//判断是否含有数字
int i = getPara("model.password").matches(".*\\d+.*")?1:0;
//判断是否含有大小写字母
int j = getPara("model.password").matches(".*[a-zA-Z]+.*")?1:0;
//判断是否含有特殊字符
int k = getPara("model.password").matches(".*[~!@#$%^&*_+|<>,.?/:;'\\[\\]{}\"]+.*")?1:0;
if(getPara("model.password").length() < 8 || i+j+k <3) {
renderFailed("密码至少八位且必须含有大写字母,数字及至少一个特殊字符(如:~!?#@$等)");
return;
}
//判断与旧密码是否一致
if(!model.getStr("password").equals(PasswordUtil.encodePassword(getPara("model.old_password")))) {
renderFailed("原始密码输入错误");
return;
}
model.set("password", PasswordUtil.encodePassword(getPara("model.password")));
model.update();
addOpLog("[用户行为] 修改密码");//日志记录
renderSuccess();
}
使用正则判断修改的密码是否合规
最新推荐文章于 2023-12-01 16:36:40 发布