From c509bd8047cfd582c59bba66d148b236e45d038d Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 12 一月 2023 10:15:15 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/sys/TokenService.java | 65 +++++++++++++++++++++++++------- 1 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/lf/server/service/sys/TokenService.java b/src/main/java/com/lf/server/service/sys/TokenService.java index 39c169d..a1e2dee 100644 --- a/src/main/java/com/lf/server/service/sys/TokenService.java +++ b/src/main/java/com/lf/server/service/sys/TokenService.java @@ -27,9 +27,6 @@ @Service public class TokenService implements TokenMapper { @Autowired - public RedisService redisService; - - @Autowired TokenMapper tokenMapper; @Autowired @@ -37,6 +34,9 @@ @Autowired LoginService loginService; + + @Autowired + RedisService redisService; @Override public Integer selectCount(String name, Integer type) { @@ -96,14 +96,15 @@ /** * 鑾峰彇鏂扮殑浠ょ墝瀹炰綋绫� */ - public TokenEntity getNewToken(int userid, HttpServletRequest req) { + public TokenEntity getNewToken(UserEntity ue, HttpServletRequest req) { TokenEntity te = new TokenEntity(); te.setToken(WebHelper.getGuid()); te.setDuration(SettingData.TOKEN_EXPIRE); te.setExpire(WebHelper.getTimestamp(SettingData.TOKEN_EXPIRE)); te.setType(0); te.setIp(WebHelper.getIpAddress(req)); - te.setCreateUser(userid); + te.setCreateUser(ue.getId()); + te.setUname(ue.getUname()); return te; } @@ -142,8 +143,8 @@ return false; } - // 娓呴櫎Cookie WebHelper.saveCookie(StaticData.TOKEN_COOKIE_KEY, "", 60, res) - WebHelper.deleteAll(req, res); + // 娓呴櫎Cookie + WebHelper.deleteCookies(req, res); // 鑾峰彇褰撳墠鐢ㄦ埛 UserEntity ue = getCurrentUser(req); @@ -153,9 +154,13 @@ // 娓呴櫎缂撳瓨 String tokenKey = RedisCacheKey.signTokenKey(token); - redisService.delete(tokenKey); + if (redisService.hasKey(tokenKey)) { + redisService.delete(tokenKey); + } String userKey = RedisCacheKey.signUserKey(te.getToken()); - redisService.delete(userKey); + if (redisService.hasKey(userKey)) { + redisService.delete(userKey); + } // db锛岃缃护鐗岃繃鏈� te.setUpdateUser(ue.getId()); @@ -165,7 +170,7 @@ } // 鍐欐棩蹇� - LoginEntity le = loginService.getNewLogin(ue.getId(), 3, req); + LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 3, 1, req); rows = loginService.insertLogin(le); return rows > 0; @@ -183,7 +188,7 @@ // redis Object obj = redisService.get(tokenKey); - if (obj != null && obj instanceof TokenEntity) { + if (obj instanceof TokenEntity) { return (TokenEntity) obj; } @@ -214,9 +219,6 @@ /** * 鑾峰彇褰撳墠鐢ㄦ埛 - * - * @param req - * @return */ public UserEntity getCurrentUser(HttpServletRequest req) { String token = WebHelper.getToken(req); @@ -228,7 +230,7 @@ // redis Object obj = redisService.get(userKey); - if (obj != null && obj instanceof UserEntity) { + if (obj instanceof UserEntity) { return (UserEntity) obj; } @@ -243,4 +245,37 @@ return ue; } + + /** + * 璁剧疆瀵嗙爜閿欒缂撳瓨 + */ + public void setPwdErrCache(UserEntity ue) { + String key = RedisCacheKey.signPwdError(ue.getUid()); + Object objCount = redisService.get(key); + + int count = objCount == null ? 1 : (int) objCount + 1; + redisService.put(key, count, SettingData.PWD_ERR_TIME, TimeUnit.MINUTES); + + // 璁板綍鏃ュ織 + HttpServletRequest req = WebHelper.getRequest(); + LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 1, 0, req); + le.setDescr("瀵嗙爜涓嶆纭�"); + loginService.insertLogin(le); + + if (count >= SettingData.PWD_ERR_COUNT) { + String token = WebHelper.getToken(req); + HttpServletResponse res = WebHelper.getResponse(); + logout(token, req, res); + } + } + + /** + * 鐢ㄦ埛ID鏄�/鍚︾鐢� + */ + public boolean isUidDisable(UserEntity ue) { + String key = RedisCacheKey.signPwdError(ue.getUid()); + Object objCount = redisService.get(key); + + return objCount != null && (int) objCount >= SettingData.PWD_ERR_COUNT; + } } -- Gitblit v1.9.3