From a9e21702aaa024c0f7f2c0e35c8585cae9cde724 Mon Sep 17 00:00:00 2001 From: dawn9117 <silanglang@163.com> Date: 星期五, 26 十一月 2021 13:55:32 +0800 Subject: [PATCH] 接口重复鉴权BUG修复: ResourceConfig中已经配置鉴权拦截器, 添加sa-token-spring-aop会导致重复鉴权BUG --- ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java | 36 +++++++++++++++++++++++++++++++++++- 1 files changed, 35 insertions(+), 1 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java index 394bdb2..27472a7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java @@ -92,6 +92,29 @@ } /** + * 缂撳瓨鍩烘湰鐨勫璞★紝淇濈暀褰撳墠瀵硅薄 TTL 鏈夋晥鏈� + * + * @param key 缂撳瓨鐨勯敭鍊� + * @param value 缂撳瓨鐨勫�� + * @param isSaveTtl 鏄惁淇濈暀TTL鏈夋晥鏈�(渚嬪: set涔嬪墠ttl鍓╀綑90 set涔嬪悗杩樻槸涓�90) + * @since Redis 6.X 浠ヤ笂浣跨敤 setAndKeepTTL 鍏煎 5.X 鏂规 + */ + public static <T> void setCacheObject(final String key, final T value, final boolean isSaveTtl) { + RBucket<Object> bucket = client.getBucket(key); + if (isSaveTtl) { + try { + bucket.setAndKeepTTL(value); + } catch (Exception e) { + long timeToLive = bucket.remainTimeToLive(); + bucket.set(value); + bucket.expire(timeToLive, TimeUnit.MILLISECONDS); + } + } else { + bucket.set(value); + } + } + + /** * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛� * * @param key 缂撳瓨鐨勯敭鍊� @@ -99,7 +122,7 @@ * @param timeout 鏃堕棿 * @param timeUnit 鏃堕棿棰楃矑搴� */ - public static <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) { + public static <T> void setCacheObject(final String key, final T value, final long timeout, final TimeUnit timeUnit) { RBucket<T> result = client.getBucket(key); result.set(value); result.expire(timeout, timeUnit); @@ -141,6 +164,17 @@ } /** + * 鑾峰緱key鍓╀綑瀛樻椿鏃堕棿 + * + * @param key 缂撳瓨閿�� + * @return 鍓╀綑瀛樻椿鏃堕棿 + */ + public static <T> long getTimeToLive(final String key) { + RBucket<T> rBucket = client.getBucket(key); + return rBucket.remainTimeToLive(); + } + + /** * 鍒犻櫎鍗曚釜瀵硅薄 * * @param key -- Gitblit v1.9.3