类 ModulePowerCache

java.lang.Object
net.sohelp.boot.engine.web.cache.ModulePowerCache

@Component public class ModulePowerCache extends Object
用户模块权限Cache
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    static final Map<Long,List<String>>
     
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    清空用户模块缓存映射表 该方法用于清除USER_MODULE_CACHE_MAP中的所有缓存数据, 通常在需要重置缓存状态或释放缓存资源时调用。
    void
    reload(long userId)
    重新加载指定用户的模块权限缓存 该方法首先清除用户原有的模块权限缓存,然后从数据库查询该用户关联角色的菜单权限, 解析出有效的模块名称并更新到缓存中。
    void
    remove(long userId)
    从模块权限缓存中移除指定用户的缓存数据
    void
    validateModule(long userId, String moduleName)
    验证用户是否具有指定模块的访问权限
    void
    validateNamespace(long userId, String namespace)
    验证用户对指定命名空间的访问权限

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细资料

    • USER_MODULE_CACHE_MAP

      public static final Map<Long,List<String>> USER_MODULE_CACHE_MAP
  • 构造器详细资料

    • ModulePowerCache

      public ModulePowerCache()
  • 方法详细资料

    • validateNamespace

      public void validateNamespace(long userId, String namespace) throws AccessPermissionException
      验证用户对指定命名空间的访问权限

      首先检查命名空间是否绑定了模块,若未绑定则抛出异常; 然后遍历所有模块,逐个验证用户对每个模块的访问权限。

      参数:
      userId - 用户ID,用于权限验证
      namespace - 命名空间名称,需要验证的命名空间
      抛出:
      AccessPermissionException - 当命名空间未绑定模块或用户无访问权限时抛出
    • validateModule

      public void validateModule(long userId, String moduleName) throws AccessPermissionException
      验证用户是否具有指定模块的访问权限
      参数:
      userId - 用户ID,用于查询用户权限缓存
      moduleName - 模块名称,需要验证的模块标识
      抛出:
      AccessPermissionException - 当用户无权访问指定模块时抛出此异常 异常消息通过langRender获取国际化资源"engine.power.no-access"
    • clear

      public void clear()
      清空用户模块缓存映射表 该方法用于清除USER_MODULE_CACHE_MAP中的所有缓存数据, 通常在需要重置缓存状态或释放缓存资源时调用。
    • remove

      public void remove(long userId)
      从模块权限缓存中移除指定用户的缓存数据
      参数:
      userId - 要移除的用户ID
    • reload

      public void reload(long userId) throws SQLException
      重新加载指定用户的模块权限缓存 该方法首先清除用户原有的模块权限缓存,然后从数据库查询该用户关联角色的菜单权限, 解析出有效的模块名称并更新到缓存中。管理员和开发人员的权限会被全部放开。
      参数:
      userId - 用户ID,用于查询该用户关联的模块权限
      抛出:
      SQLException - 如果数据库查询过程中发生异常