diff --git a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java index c9a7256f..26ae2463 100644 --- a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java +++ b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java @@ -9,6 +9,9 @@ import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.JWTDecodeException; import com.auth0.jwt.exceptions.JWTVerificationException; import com.auth0.jwt.interfaces.DecodedJWT; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import com.ibeetl.admin.core.rbac.UserLoginInfo; import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.jlw.entity.AbstractToken; @@ -29,6 +32,7 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; import static cn.jlw.token.TokenService.tokenMap; import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest; @@ -44,7 +48,18 @@ public class AuthenticationInterceptor implements HandlerInterceptor { @Autowired ActionLog actionLog; - public static Map indexTokenMap = new ConcurrentHashMap<>(); +// public static Map indexTokenMap = new ConcurrentHashMap<>(); +// public static DefaultRedisMap indexTokenMap = new DefaultRedisMap<>("core:token:indexTokenMap", SpringUtil.getBean("stringRedisTemplate")); + public static LoadingCache indexTokenMap = CacheBuilder.newBuilder() + .expireAfterAccess(8, TimeUnit.HOURS) + .build(new CacheLoader() { + // 处理缓存键不存在缓存值时的处理逻辑 + @Override + public String load(String key) { + return "不存在的key"; + } + }); + public static Map keyIdOpenIdMap = new ConcurrentHashMap<>(); public static Map workMap = new ConcurrentHashMap<>(); //用来存储后台工作的人员正在进行的操作 @@ -182,7 +197,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor { if(StringUtils.isBlank(token)&&httpServletRequest.getRequestURL().toString().contains("index.do")){//从参数中获取 String key_id = httpServletRequest.getParameter("key_id"); if(null != key_id){ - token = indexTokenMap.get(key_id); + token = indexTokenMap.getUnchecked(key_id); } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java b/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java index 8ae4b365..f0f43f07 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java +++ b/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java @@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; import static cn.jlw.Interceptor.AuthenticationInterceptor.indexTokenMap; + /** * @author Binary Wang */