7月19 登录失败 错误次数 | 字段类型被修改bug | 日志
添加 错误次数 miss_count 以及 禁止登录时间 no_login_date
比如最多错误5次,5次都错误,半小时内禁止登录
流程:
1、登录失败
miss_count ++
当miss_count =5 时,禁止登录,设置no_login_date = new Date + 30Min
按再次登录判断时间
当 miss_count =5 时 ,再次登录 判断 no_login_date
no_login_date > 当前时间 提示禁止登录
2、登录成功
清空 miss_count 和 no_login_date
上代码
// #1# 如果登录错误次数大于5次 规定时间内禁止登录 if(dbUser.getLoginFailCount() != null && dbUser.getLoginFailCount() >= 5){ if(DateUtils.getCurrentDateTime().getTime() < dbUser.getMissDate().getTime()){ return LYResultVO.errorResultVO("账号连续5次登录失败,请于30分钟后登录!"); } #2# 如果过了30分钟 解禁 count 设置为0 dbUser.setLoginFailCount(0); systemUserJpaRepository.save(dbUser); } #3# 密码错误时 触发 。且防止空指针 不为null 再get + 1 if (!dbUser.getPassword().equals(MD5Utils.MD5(user.getPassWord()))) { if(dbUser.getLoginFailCount() != null){ dbUser.setLoginFailCount(dbUser.getLoginFailCount() + 1); }else{ dbUser.setLoginFailCount(1); } systemUserJpaRepository.save(dbUser); if(dbUser.getLoginFailCount() == 5){ dbUser.setMissDate(DateUtils.getAfterCurrentDateTime(30)); } return LYResultVO.errorResultVO("密码有误!"); } #4# 登录成功归零 dbUser.setLoginFailCount(0); systemUserJpaRepository.save(dbUser);
二、字段类型被修改bug
id 原来是varchar 不知被怎么的改成了int
然后查询就出现了这样的结果。错乱了
三、添加日志
controller 访问都要添加日志
方法参数 都叫request (@RequestBody RoleInfoDTO request)
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private final Logger log = LoggerFactory.getLogger(RoleInfoResource.class); @ApiOperation(value="角色删除") log.info("#角色删除#" + JsonUtils.obj2str(request));
JSON.toJSONString(dicList)
阿里巴巴json