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

 

posted @ 2018-07-19 14:18  lyon♪♫  阅读(127)  评论(0编辑  收藏  举报