From 56d1596d35e5de788c09f7a14e33a720a932c76e Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期四, 15 五月 2025 16:01:15 +0800 Subject: [PATCH] 采购合同号 --- src/main/java/com/ruoyi/framework/security/service/TokenService.java | 41 +++++++++++++++++++++++++++-------------- 1 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/security/service/TokenService.java b/src/main/java/com/ruoyi/framework/security/service/TokenService.java index 7637ed8..bb7e5ca 100644 --- a/src/main/java/com/ruoyi/framework/security/service/TokenService.java +++ b/src/main/java/com/ruoyi/framework/security/service/TokenService.java @@ -4,15 +4,18 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.utils.IdUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.framework.redis.RedisCache; import com.ruoyi.framework.security.LoginUser; import eu.bitwalker.useragentutils.UserAgent; @@ -28,6 +31,8 @@ @Component public class TokenService { + private static final Logger log = LoggerFactory.getLogger(TokenService.class); + // 浠ょ墝鑷畾涔夋爣璇� @Value("${token.header}") private String header; @@ -44,7 +49,7 @@ protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND; - private static final Long MILLIS_MINUTE_TEN = 20 * 60 * 1000L; + private static final Long MILLIS_MINUTE_TWENTY = 20 * 60 * 1000L; @Autowired private RedisCache redisCache; @@ -60,12 +65,19 @@ String token = getToken(request); if (StringUtils.isNotEmpty(token)) { - Claims claims = parseToken(token); - // 瑙f瀽瀵瑰簲鐨勬潈闄愪互鍙婄敤鎴蜂俊鎭� - String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); - String userKey = getTokenKey(uuid); - LoginUser user = redisCache.getCacheObject(userKey); - return user; + try + { + Claims claims = parseToken(token); + // 瑙f瀽瀵瑰簲鐨勬潈闄愪互鍙婄敤鎴蜂俊鎭� + String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); + String userKey = getTokenKey(uuid); + LoginUser user = redisCache.getCacheObject(userKey); + return user; + } + catch (Exception e) + { + log.error("鑾峰彇鐢ㄦ埛淇℃伅寮傚父'{}'", e.getMessage()); + } } return null; } @@ -108,20 +120,21 @@ Map<String, Object> claims = new HashMap<>(); claims.put(Constants.LOGIN_USER_KEY, token); + claims.put(Constants.JWT_USERNAME, loginUser.getUsername()); return createToken(claims); } /** * 楠岃瘉浠ょ墝鏈夋晥鏈燂紝鐩稿樊涓嶈冻20鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛� * - * @param token 浠ょ墝 + * @param loginUser 鐧诲綍淇℃伅 * @return 浠ょ墝 */ public void verifyToken(LoginUser loginUser) { long expireTime = loginUser.getExpireTime(); long currentTime = System.currentTimeMillis(); - if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + if (expireTime - currentTime <= MILLIS_MINUTE_TWENTY) { refreshToken(loginUser); } @@ -140,7 +153,7 @@ String userKey = getTokenKey(loginUser.getToken()); redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); } - + /** * 璁剧疆鐢ㄦ埛浠g悊淇℃伅 * @@ -149,13 +162,13 @@ public void setUserAgent(LoginUser loginUser) { UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); - String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + String ip = IpUtils.getIpAddr(); loginUser.setIpaddr(ip); loginUser.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); loginUser.setBrowser(userAgent.getBrowser().getName()); loginUser.setOs(userAgent.getOperatingSystem().getName()); } - + /** * 浠庢暟鎹0鏄庣敓鎴愪护鐗� * @@ -214,6 +227,6 @@ private String getTokenKey(String uuid) { - return Constants.LOGIN_TOKEN_KEY + uuid; + return CacheConstants.LOGIN_TOKEN_KEY + uuid; } } -- Gitblit v1.9.3