1、菜单权限问题修复;

2、增加修改菜单权限刷新本地缓存;
This commit is contained in:
gaoqr
2024-06-13 16:38:17 +08:00
parent e8e2052be6
commit 69a679ff77
10 changed files with 136 additions and 21 deletions
@@ -23,6 +23,13 @@ public interface SecurityFrameworkService {
*/
boolean hasAnyPermissions(String... permissions);
/**
* 清空本地缓存
*
* @param
*/
void invalidateAll();
/**
* 判断是否有角色
*
@@ -28,7 +28,7 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
/**
* 针对 {@link #hasAnyRoles(String...)} 的缓存
*/
private final LoadingCache<KeyValue<Long, List<String>>, Boolean> hasAnyRolesCache = CacheUtils.buildAsyncReloadingCache(
private final LoadingCache<KeyValue<Long, List<String>>, Boolean> hasAnyRolesCache = CacheUtils.buildCache(
Duration.ofMinutes(1L), // 过期时间 1 分钟
new CacheLoader<KeyValue<Long, List<String>>, Boolean>() {
@@ -42,7 +42,7 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
/**
* 针对 {@link #hasAnyPermissions(String...)} 的缓存
*/
private final LoadingCache<KeyValue<Long, List<String>>, Boolean> hasAnyPermissionsCache = CacheUtils.buildAsyncReloadingCache(
private final LoadingCache<KeyValue<Long, List<String>>, Boolean> hasAnyPermissionsCache = CacheUtils.buildCache(
Duration.ofMinutes(1L), // 过期时间 1 分钟
new CacheLoader<KeyValue<Long, List<String>>, Boolean>() {
@@ -65,6 +65,11 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
return hasAnyPermissionsCache.get(new KeyValue<>(SecurityFrameworkUtils.getLoginUserId(), Arrays.asList(permissions)));
}
@Override
public void invalidateAll() {
hasAnyPermissionsCache.invalidateAll();
}
@Override
public boolean hasRole(String role) {
return hasAnyRoles(role);