From efe89bc1b6bd69d3e098d7d2e2c03b094da0ee73 Mon Sep 17 00:00:00 2001 From: weinan2087 Date: Tue, 29 Nov 2022 16:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=99=BB=E5=BD=95=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/system/api/SysLoginApi.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java b/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java index 31f7c208..3c0d6bdb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java @@ -100,12 +100,7 @@ public class SysLoginApi extends ApiBaseController { return error("验证码错误"); } - // 从redis缓存中获取5分钟内登陆错误的次数 - String loginErrorNum = redisTemplate.opsForValue().get(CacheName.NAME_USER_LOGIN_ERROR_NUM); - Integer loginErrorCount = 0; - if(loginErrorNum != null || !loginErrorNum.equals("")){ - loginErrorCount = Integer.parseInt(loginErrorNum); - } + // 检查系统用户是否存在 Account account = accountService.check(loginName,null); @@ -114,14 +109,20 @@ public class SysLoginApi extends ApiBaseController { passStr = MD5Util.MD5Encode(password + account.getPassKey()); } + // 从redis缓存中获取5分钟内登陆错误的次数 + String loginErrorNum = redisTemplate.opsForValue().get(CacheName.NAME_USER_LOGIN_ERROR_NUM+account); + Integer loginErrorCount = 0; + if(loginErrorNum != null || !loginErrorNum.equals("")){ + loginErrorCount = Integer.parseInt(loginErrorNum); + } if (account == null || StringUtil.isBlank(passStr) || !passStr.equals(account.getPassValue())) { if(loginErrorCount >=5){ - redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM, "5", 5, TimeUnit.MINUTES); + redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM+account, "5", 5, TimeUnit.MINUTES); return error("由于您登录失败次数过多,账号已被锁定!"); }else{ loginErrorCount = loginErrorCount + 1; - redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM, loginErrorCount+"", 5, TimeUnit.MINUTES); + redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM+account, loginErrorCount+"", 5, TimeUnit.MINUTES); return error("用户名或密码错误,您还有"+(5-loginErrorCount)+"次登录机会"); } // return error("用户名或密码错误");