mirror of
https://gitee.com/xiaonuobase/snowy.git
synced 2026-10-06 06:52:58 +08:00
【底座】修复 #IK8FIT ResourceCollectListener 启动扫描是全量最新清单,不应该和历史缓存合并,应当直接覆盖,而不是增量追加
This commit is contained in:
@@ -15,7 +15,6 @@ package vip.xiaonuo.core.listener;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -97,23 +96,9 @@ public class ResourceCollectListener implements CommandLineRunner {
|
||||
}
|
||||
}));
|
||||
|
||||
//2.汇总添加到缓存
|
||||
Object permissionResourceObject = commonCacheOperator.get(CacheConstant.PERMISSION_RESOURCE_CACHE_KEY);
|
||||
List<String> permissionResource;
|
||||
if (Objects.isNull(permissionResourceObject)) {
|
||||
permissionResource = CollUtil.newArrayList();
|
||||
} else {
|
||||
permissionResource = Convert.toList(String.class, permissionResourceObject);
|
||||
}
|
||||
//2.直接覆盖缓存(启动扫描是全量清单,不应与历史合并)
|
||||
if (CollUtil.isNotEmpty(permissionResult)) {
|
||||
for (String permission : permissionResult) {
|
||||
if (!permissionResource.contains(permission)) {
|
||||
permissionResource.add(permission);
|
||||
}
|
||||
}
|
||||
|
||||
// 刷新缓存
|
||||
commonCacheOperator.put(CacheConstant.PERMISSION_RESOURCE_CACHE_KEY, permissionResource);
|
||||
commonCacheOperator.put(CacheConstant.PERMISSION_RESOURCE_CACHE_KEY, permissionResult);
|
||||
}
|
||||
|
||||
// 3.汇总添加Permission Method Map数据到缓存
|
||||
@@ -128,22 +113,8 @@ public class ResourceCollectListener implements CommandLineRunner {
|
||||
* @param permissionMethodMap map of key {@link String},value {@link String}
|
||||
*/
|
||||
private void refreshPermissionMethodMapDataToCache(Map<String, String> permissionMethodMap) {
|
||||
Object permissionMethodMapObject = commonCacheOperator.get(CacheConstant.PERMISSION_RESOURCE_METHOD_CACHE_KEY);
|
||||
Map<String, String> permissionMethodMapFromCache = null;
|
||||
if (Objects.isNull(permissionMethodMapObject)) {
|
||||
permissionMethodMapFromCache = MapUtil.newHashMap();
|
||||
} else {
|
||||
permissionMethodMapFromCache = Convert.toMap(String.class, String.class, permissionMethodMapObject);
|
||||
}
|
||||
if (CollUtil.isNotEmpty(permissionMethodMap)) {
|
||||
for (Map.Entry<String, String> permissionMethodEntry : permissionMethodMap.entrySet()) {
|
||||
String permissionKey = permissionMethodEntry.getKey();
|
||||
String permissionMethod = permissionMethodEntry.getValue();
|
||||
permissionMethodMapFromCache.put(permissionKey, permissionMethod);
|
||||
}
|
||||
|
||||
// 刷新缓存
|
||||
commonCacheOperator.put(CacheConstant.PERMISSION_RESOURCE_METHOD_CACHE_KEY, permissionMethodMapFromCache);
|
||||
commonCacheOperator.put(CacheConstant.PERMISSION_RESOURCE_METHOD_CACHE_KEY, permissionMethodMap);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user