//登录密码没有问题,再判断是否符合密码规则
String str= checkPasswordRule(password);
if(str.equals("")){
request.getSession().setAttribute(PlatformConstants.CURRENT_USER, new UserInfoWrapper(user));
}else{
throw new UserException(str);
}
public String checkPasswordRule(String password) throws UserException{
String need = "";
UserPasswordRuleInfo userPwdRuleInfo = userService.getUserPwdRule();
userPwdRule = new UserPasswordRuleInfoWrapper(userPwdRuleInfo);
String[] complexitys = userPwdRule.getPwd_complexity().split(",");
for (int i = 0; i < complexitys.length; i++) {
need+=doExcute(complexitys[i],password);
}
if(Integer.parseInt(userPwdRule.getPwd_min_lengh()) > password.length()){
need+="密码不能小于"+userPwdRule.getPwd_min_lengh()+"位";
}
return need;
}
private String doExcute(String param, String password) {
String need = "";
String digital = "/[0-9]/";
String capital = "/[A-Z]/";
String lowercase ="/[a-z]/";
String spec="/[,.<>{}~!@#$%^&*_]/";
if(param.equals("1")){
if(!capital.equals(password)){
need+="必须包含大写字母 ";
}
}
if(param.equals("2")){
if(!lowercase.equals(password)){
need+="必须包含小写字母 ";
}
}
if(param.equals("3")){
if(!spec.equals(password)){
need+="必须包含特殊字符。例如:!@#$%^&* 其中一个或多个 ";
}
}
if(param.equals("4")){
if(!digital.equals(password)){
need+="必须包含数字 ";
}
}
return need;
}