From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/controller/LoginController.java | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/LoginController.java b/src/main/java/com/nanometer/smartlab/controller/LoginController.java index c5626bc..b5a72da 100644 --- a/src/main/java/com/nanometer/smartlab/controller/LoginController.java +++ b/src/main/java/com/nanometer/smartlab/controller/LoginController.java @@ -6,6 +6,7 @@ import com.nanometer.smartlab.util.FacesUtils; import org.apache.log4j.Logger; import org.apache.shiro.authc.DisabledAccountException; +import org.apache.shiro.authc.ExcessiveAttemptsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; @@ -30,6 +31,7 @@ private String loginAcct; private String loginPwd; + private static Byte ischange = 0; public String login() { UsernamePasswordToken token = new UsernamePasswordToken(loginAcct, loginPwd); @@ -41,6 +43,9 @@ } catch (UnknownAccountException e) { FacesUtils.warn("用户名不存在"); return null; + } catch (ExcessiveAttemptsException e) { + FacesUtils.warn("登陆失败,密码连续输入错误超过8次,锁定1分钟!"); + return null; } catch (Exception e) { logger.error("登陆失败", e); } @@ -48,6 +53,13 @@ if (currentUser.isAuthenticated()) {//登录成功进入主页 SysUser user = this.sysUserService.getSysUserByAccount(loginAcct); currentUser.getSession(true).setAttribute(Constants.SESSION_USER, user); + + String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}"; + if (!loginPwd.matches(PW_PATTERN)) { + ischange = 1; + }else { + ischange = 0; + } this.menuController.initPage(); return Constants.PAGE_INDEX + Constants.REDIRECT; @@ -77,4 +89,13 @@ public void setLoginPwd(String loginPwd) { this.loginPwd = loginPwd; } + + + public Byte getIschange() { + return ischange; + } + + public void setIschange(Byte ischange) { + this.ischange = ischange; + } } -- Gitblit v1.9.2