From ec74eed32628ad5b0c496101457b9d3a0d538a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 2 Sep 2024 14:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E7=99=BB=E5=BD=95=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/LoginServiceImpl.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java index 86f5ad04..9fe6ae5c 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java @@ -131,23 +131,23 @@ public class LoginServiceImpl implements ILoginService { } // 若用户名有效,则查询该账号的登陆失败次数是否符合等保要求 -// int retryCount = 0 ; -// if ( redisUtil.get(RETRY_LOGIN_PREFIX + username) != null){ -// retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + username); -// } -// if (retryCount >= RETRY_LOGIN_MAX_COUNT){ -// return Result.error("密码错误次数过多,请15分钟后重试"); -// } -// //2. 校验用户名或密码是否正确 -// String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt()); -// String syspassword = sysUser.getPassword(); -// if (!syspassword.equals(userpassword)) { -// // 重试登录次数加一 -// retryCount++; -// this.setRetryInfoToRedis(username, retryCount); -// String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount); -// return Result.error(msg); -// } + int retryCount = 0 ; + if ( redisUtil.get(RETRY_LOGIN_PREFIX + username) != null){ + retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + username); + } + if (retryCount >= RETRY_LOGIN_MAX_COUNT){ + return Result.error("密码错误次数过多,请15分钟后重试"); + } + //2. 校验用户名或密码是否正确 + String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt()); + String syspassword = sysUser.getPassword(); + if (!syspassword.equals(userpassword)) { + // 重试登录次数加一 + retryCount++; + this.setRetryInfoToRedis(username, retryCount); + String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount); + return Result.error(msg); + } //登录成功,清除错误登录次数 redisUtil.del(RETRY_LOGIN_PREFIX + username); if (checkSysPermission(username)) {