package message.validate.handler; import message.utils.StringUtils; import message.validate.annotations.Password; import message.validate.core.ValidateHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.annotation.Annotation; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 密码验证处理类. * * @author sunhao(sunhao.java@gmail.com) * @version V1.0 * @createTime 12-11-26 下午8:54 */ public class PasswordHandler extends ValidateHandler { private static final Logger logger = LoggerFactory.getLogger(PasswordHandler.class); protected boolean handle(Annotation annotation, Object value) { if(!(value instanceof String)){ logger.error("is not string!"); return false; } Password password = (Password) annotation; String regex = password.regex(); int min = password.min(); int max = password.max(); int length = ((String) value).length(); if(StringUtils.isEmpty(regex)) { //不通过正则表达式 return min < max && min <= length && max >= length; } else { //通过正则表达式验证 Pattern patter = Pattern.compile(regex); Matcher matcher = patter.matcher((String) value); boolean l = true; if(min < max) //并且有长度的校验 l = (min <= length && max >= length); return matcher.matches() && l; } } }