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