【底座】修复 #IK8FIT ResourceCollectListener 启动扫描是全量最新清单,不应该和历史缓存合并,应当直接覆盖,而不是增量追加

This commit is contained in:
xuyuxiang
2026-09-14 20:59:05 +08:00
parent 2bfa6bd7ed
commit d1df2ff680
@@ -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);
}
}