From 0e6cb26ba9c9a3aa6647108f95f214da8503ec0b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 17 Feb 2023 21:53:57 +0800 Subject: [PATCH] =?UTF-8?q?perf(token):=20=E7=A6=81=E7=94=A8token=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/auth/filter/JWTFilter.java | 4 +--- .../java/io/dataease/auth/util/JWTUtils.java | 21 +++---------------- .../commons/utils/TokenCacheUtils.java | 9 -------- .../src/main/resources/ehcache/ehcache.xml | 12 +---------- 4 files changed, 5 insertions(+), 41 deletions(-) diff --git a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java index e5bd636789..db9be9a709 100644 --- a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java +++ b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java @@ -66,7 +66,7 @@ public class JWTFilter extends BasicHttpAuthenticationFilter { if (StringUtils.startsWith(authorization, "Basic")) { return false; } - if (!TokenCacheUtils.validate(authorization) && !TokenCacheUtils.validateDelay(authorization)) { + if (!TokenCacheUtils.validate(authorization)) { throw new AuthenticationException(expireMessage); } // 当没有出现登录超时 且需要刷新token 则执行刷新token @@ -75,8 +75,6 @@ public class JWTFilter extends BasicHttpAuthenticationFilter { throw new AuthenticationException(expireMessage); } if (JWTUtils.needRefresh(authorization)) { - TokenCacheUtils.addWithTtl(authorization, 1L); - TokenCacheUtils.remove(authorization); authorization = refreshToken(request, response); } JWTToken token = new JWTToken(authorization); diff --git a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java index cebe34c5f5..2c671abda9 100644 --- a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java +++ b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java @@ -20,9 +20,6 @@ import java.util.Date; public class JWTUtils { - // token过期时间1min (过期会自动刷新续命 目的是避免一直都是同一个token ) - private static final long EXPIRE_TIME = 1 * 60 * 1000; - // 登录间隔时间10min 超过这个时间强制重新登录 private static long Login_Interval; /** @@ -67,9 +64,7 @@ public class JWTUtils { } public static boolean needRefresh(String token) { - Date exp = JWTUtils.getExp(token); - Long advanceTime = 5000L; - return (new Date().getTime() + advanceTime) >= exp.getTime(); + return false; } /** @@ -95,18 +90,9 @@ public class JWTUtils { return isExpire; } - public static Date getExp(String token) { - try { - DecodedJWT jwt = JWT.decode(token); - return jwt.getClaim("exp").asDate(); - } catch (JWTDecodeException e) { - e.printStackTrace(); - return null; - } - } + /** - * 生成签名,5min后过期 * * @param tokenInfo 用户信息 * @param secret 用户的密码 @@ -114,12 +100,11 @@ public class JWTUtils { */ public static String sign(TokenInfo tokenInfo, String secret) { try { - Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); Algorithm algorithm = Algorithm.HMAC256(secret); Builder builder = JWT.create() .withClaim("username", tokenInfo.getUsername()) .withClaim("userId", tokenInfo.getUserId()); - String sign = builder.withExpiresAt(date).sign(algorithm); + String sign = builder.sign(algorithm); TokenCacheUtils.add(sign, tokenInfo.getUserId()); return sign; diff --git a/backend/src/main/java/io/dataease/commons/utils/TokenCacheUtils.java b/backend/src/main/java/io/dataease/commons/utils/TokenCacheUtils.java index 338adbf2da..bc936c3be5 100644 --- a/backend/src/main/java/io/dataease/commons/utils/TokenCacheUtils.java +++ b/backend/src/main/java/io/dataease/commons/utils/TokenCacheUtils.java @@ -7,7 +7,6 @@ import org.apache.commons.lang3.StringUtils; public class TokenCacheUtils { private static final String KEY = "sys_token_store"; - private static final String DELAY_KEY = "sys_token_store_delay"; public static void add(String token, Long userId) { CacheUtils.put(KEY, token, userId, null, null); @@ -27,12 +26,4 @@ public class TokenCacheUtils { return ObjectUtils.isNotEmpty(sys_token_store) && StringUtils.isNotBlank(sys_token_store.toString()) && userId == Long.parseLong(sys_token_store.toString()); } - public static void addWithTtl(String token, Long userId) { - CacheUtils.put(DELAY_KEY, token, userId, 3, 5); - } - - public static boolean validateDelay(String token) { - Object tokenObj = CacheUtils.get(DELAY_KEY, token); - return ObjectUtils.isNotEmpty(tokenObj) && StringUtils.isNotBlank(tokenObj.toString()); - } } diff --git a/backend/src/main/resources/ehcache/ehcache.xml b/backend/src/main/resources/ehcache/ehcache.xml index f8d8591b20..eccd3b1661 100644 --- a/backend/src/main/resources/ehcache/ehcache.xml +++ b/backend/src/main/resources/ehcache/ehcache.xml @@ -277,19 +277,9 @@ maxElementsOnDisk="3000" overflowToDisk="true" diskPersistent="false" - /> - - + \ No newline at end of file