From cfe431f7938d40cbf2478119baa8a0eab9b746d6 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 21 四月 2023 12:55:27 +0800
Subject: [PATCH] 登录时密码加密,记录登录错误次数
---
ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 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..3b459dd 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;
@@ -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