今天给两个项目加上了登录时在一定时间内输入密码多次失败就锁定账号的功能,锁定之后需要管理员进行解锁才能够继续登陆;两个项目一个是用shiro,一个没用shiro;不过都差不多,下面只讲用shiro的,具体业务可以根据自己需求去修改(比如:登录失败多次不锁定账号,只是以相对时间内的次数去判断,超过该段时间就可以继续登陆;时间自己设定)
数据库:建立一个表存放用户登录失败的记录(密码最好加密后再存进数据库)
/*
* 登录信息和用户验证信息验证(non-Javadoc)
* @see org.apache.shiro.realm.AuthenticatingRealm#doGetAuthenticationInfo(org.apache.shiro.authc.AuthenticationToken)
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String username = (String) token.getPrincipal();
String password = new String((char[]) token.getCredentials());
HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes