From 905296d89c10d770cb613fd93f1ca4aa687754ce Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 12 六月 2023 09:44:41 +0800
Subject: [PATCH] bug修改

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
index c8235e2..868fadd 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ycl.service.user.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.PageUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.druid.sql.PagerUtils;
@@ -49,6 +50,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
@@ -139,7 +141,7 @@
             date = calendar.getTime();
             umsAdmin.setExpirationDate(date);
         } else {
-            umsAdmin.setExpirationDate(new Date("2200-01-01"));
+            umsAdmin.setExpirationDate(new Date(2090,1,1));
         }
         if (umsAdmin.getId() != null) {
             baseMapper.updateById(umsAdmin);
@@ -258,12 +260,31 @@
         //瀵嗙爜闇�瑕佸鎴风鍔犲瘑鍚庝紶閫�
         try {
             AdminUserDetails userDetails = (AdminUserDetails) loadUserByUsername(username);
+
+            UmsAdmin admin = userDetails.getUmsAdmin();
+            LocalDateTime nowTime = LocalDateTime.now();
+            nowTime = nowTime.plusMinutes(-15);
+            if (admin.getPasswordErrorNum() != null && admin.getPasswordErrorNum() >= 5
+                    && admin.getPasswordErrorLastTime().isAfter(nowTime)) {
+                admin.setPasswordErrorLastTime(LocalDateTime.now());
+                updateById(admin);
+                Asserts.fail("鐧诲綍澶辫触瓒呰繃5娆★紝姝よ处鍙疯閿佸畾锛岃15鍒嗛挓鍚庡啀璇曘��");
+            }
             if (!passwordEncoder.matches(password, userDetails.getPassword())) {
+                if (admin.getPasswordErrorNum() == null) {
+                    admin.setPasswordErrorNum(1);
+                } else {
+                    admin.setPasswordErrorNum(admin.getPasswordErrorNum() + 1);
+                }
+                admin.setPasswordErrorLastTime(LocalDateTime.now());
+                updateById(admin);
                 Asserts.fail("瀵嗙爜涓嶆纭�");
             }
             if (!userDetails.isEnabled()) {
                 Asserts.fail("甯愬彿宸茶绂佺敤");
             }
+            admin.setPasswordErrorNum(0);
+            updateById(admin);
 
             UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
             SecurityContextHolder.getContext().setAuthentication(authentication);
@@ -430,7 +451,7 @@
             List<UmsMenu> resourceList = getResourceList(admin.getId());
             return new AdminUserDetails(admin, resourceList);
         }
-        throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+        throw new UsernameNotFoundException("鐢ㄦ埛涓嶅瓨鍦�");
     }
 
     @Override

--
Gitblit v1.8.0