From f1bdb285c951f7aef6f1f217773afb7737779435 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 26 八月 2026 09:03:30 +0800
Subject: [PATCH] 增加管理后台登录频次校验和连续错误登录后限制登录 修改管理后台验证码生成和登录校验
---
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
index c443059..94db0b3 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -19,6 +19,7 @@
import com.ruoyi.system.api.model.LoginUser;
import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
/**
* 登录校验方法
@@ -38,18 +39,22 @@
@Autowired
private RedisService redisService;
+
+ @Autowired
+ private LoginRateLimitService loginRateLimitService;
/**
* 登录
*/
public LoginUser login(String username, String password, HttpServletRequest request) {
- username = username.trim();
+ loginRateLimitService.checkLoginRate(username, request);
+ username = StringUtils.trim(username);
// 查询用户信息
R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
recordLogService.recordLogininfor(request, null, username, Constants.LOGIN_FAIL_STATUS, "登录用户不存在");
- throw new ServiceException("登录用户:" + username + " 不存在");
+ throw new ServiceException("用户名或密码错误");
}
LoginUser userInfo = userResult.getData();
SysUser user = userResult.getData().getSysUser();
@@ -122,6 +127,7 @@
sysUser.setUserName(username);
sysUser.setNickName(username);
sysUser.setPassword(SecurityUtils.encryptPassword(password));
+ sysUser.setPassWordUpdate(new Date());
R<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER);
if (R.FAIL == registerResult.getCode()) {
--
Gitblit v1.7.1