| | |
| | | return model; |
| | | } |
| | | |
| | | /*** |
| | | * 通过用户id查询并解除需要解除限制的用户 |
| | | * @param userId |
| | | */ |
| | | public void limitUser(int userId){ |
| | | |
| | | User_limit user_limit = new User_limit(userId); |
| | | List limitList = ((User_limitImpl)dao).serchByInfo(user_limit); |
| | | User_limitImpl limitImpl = new User_limitImpl(); |
| | | List limitList = limitImpl.serchByInfo(user_limit); |
| | | if (limitList.size()>=1){ |
| | | for (int i = 0; i < limitList.size(); i++) { |
| | | User_limit limit = (User_limit) limitList.get(i); |
| | |
| | | long login = limit.getLoginTime().getTime()+limit.getLimitDuration()*1000; |
| | | //如果限制时间已到,先删除限制的数据 |
| | | if (now>=login){ |
| | | ((User_limitImpl)dao).del(limit); |
| | | limitImpl.del(limit); |
| | | } |
| | | } |
| | | } |
| | |
| | | } else { |
| | | //优先判断是否用户属于密码登录类型,loginType分为密码登录-1,人脸登录-2 |
| | | User_inf u = (User_inf) list.get(0); |
| | | ServletContext application = ActionUtil.getApplication(); |
| | | if(application.getAttribute("loginFails")!=null){ |
| | | loginFails = (int)application.getAttribute("loginFails"); |
| | | } |
| | | //查看此用户是否是被限制的用户 |
| | | limitUser(u.getUId()); //查询前先解除可以解除的限制用户 |
| | | User_limit user_limit = new User_limit(u.getUId()); |
| | | List limitList2 = ((User_limitImpl)dao).serchByInfo(user_limit); |
| | | List limitList2 = new User_limitImpl().serchByInfo(user_limit); |
| | | if (limitList2.size()>=1){ |
| | | User_limit limit = (User_limit) limitList2.get(0); |
| | | model.setMsg("当前用户登录密码错误次数已达"+MAXLOGINFAILS_PW+"次,请联系管理员或等待"+limit.getLimitDuration()+"秒后解除限制"); |
| | | long sec = limit.getLimitDuration()-(new Date().getTime()-limit.getLoginTime().getTime())/1000; |
| | | model.setMsg("密码错误次数已达"+MAXLOGINFAILS_PW+"次"); |
| | | model.setData(sec); |
| | | return model; |
| | | } |
| | | if(u.getLoginType()!=1){ |
| | |
| | | System.out.println("密码错误"+uinf.getUpassword()+"=="+u.getUpassword()); |
| | | //密码错误次数 |
| | | loginFails++; |
| | | ActionUtil.getSession().setAttribute("loginFails",loginFails); |
| | | ActionUtil.getApplication().setAttribute("loginFails",loginFails); |
| | | //如果密码错误次数达到5次,将锁定用户限制登录 |
| | | if (loginFails==MAXLOGINFAILS_PW){ |
| | | User_limit user_limit1 = new User_limit(u.getUId()); |
| | | boolean bl = ((User_limitImpl)dao).add(user_limit1); |
| | | boolean bl = new User_limitImpl().add(user_limit1); |
| | | if (bl){ |
| | | System.out.println(u.getUName()+"用户密码错误次数达到"+MAXLOGINFAILS_PW+"次,添加到限制用户中"); |
| | | } |