Просмотр исходного кода

fix 修复 一级缓存key未区分租户问题

疯狂的狮子Li 11 месяцев назад
Родитель
Сommit
f119d082cf

+ 5 - 3
ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java

@@ -15,15 +15,17 @@ public class CaffeineCacheDecorator implements Cache {
     private static final com.github.benmanes.caffeine.cache.Cache<Object, Object>
         CAFFEINE = SpringUtils.getBean("caffeine");
 
+    private final String name;
     private final Cache cache;
 
-    public CaffeineCacheDecorator(Cache cache) {
+    public CaffeineCacheDecorator(String name, Cache cache) {
+        this.name = name;
         this.cache = cache;
     }
 
     @Override
     public String getName() {
-        return cache.getName();
+        return name;
     }
 
     @Override
@@ -32,7 +34,7 @@ public class CaffeineCacheDecorator implements Cache {
     }
 
     public String getUniqueKey(Object key) {
-        return cache.getName() + ":" + key;
+        return name + ":" + key;
     }
 
     @Override

+ 2 - 2
ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/manager/PlusSpringCacheManager.java

@@ -156,7 +156,7 @@ public class PlusSpringCacheManager implements CacheManager {
     private Cache createMap(String name, CacheConfig config) {
         RMap<Object, Object> map = RedisUtils.getClient().getMap(name);
 
-        Cache cache = new CaffeineCacheDecorator(new RedissonCache(map, allowNullValues));
+        Cache cache = new CaffeineCacheDecorator(name, new RedissonCache(map, allowNullValues));
         if (transactionAware) {
             cache = new TransactionAwareCacheDecorator(cache);
         }
@@ -170,7 +170,7 @@ public class PlusSpringCacheManager implements CacheManager {
     private Cache createMapCache(String name, CacheConfig config) {
         RMapCache<Object, Object> map = RedisUtils.getClient().getMapCache(name);
 
-        Cache cache = new CaffeineCacheDecorator(new RedissonCache(map, config, allowNullValues));
+        Cache cache = new CaffeineCacheDecorator(name, new RedissonCache(map, config, allowNullValues));
         if (transactionAware) {
             cache = new TransactionAwareCacheDecorator(cache);
         }