Class AuthzService

java.lang.Object
io.github.xezzon.zeroweb.auth.internal.AuthzService

@Service public class AuthzService extends Object

AuthzService 是授权服务的核心业务逻辑处理组件。

它负责管理角色与用户、角色与权限之间的关系,提供绑定、解绑、查询等操作, 并在用户登录后将授权信息加载到会话中。

Author:
xezzon
  • Constructor Details

    • AuthzService

      public AuthzService(RoleUserRepository roleUserRepository, RolePermissionRepository rolePermissionRepository, IUserService4Auth userService, IRoleService4Auth roleService)
      构造函数,注入授权服务所需的所有数据仓库和服务。
      Parameters:
      roleUserRepository - 角色用户数据仓库。
      rolePermissionRepository - 角色权限数据仓库。
      userService - 用户服务接口。
      roleService - 角色服务接口。
  • Method Details

    • bindUserToRole

      @Transactional public void bindUserToRole(RoleUser roleUser)

      将用户绑定到指定角色。

      在绑定前会检查当前用户是否具有绑定权限或是否是该角色的上级角色。 如果用户-角色关系已存在,则不做处理。

      Parameters:
      roleUser - 包含用户ID和角色ID的 RoleUser 对象。
    • releaseRoleUser

      @Transactional public void releaseRoleUser(RoleUser roleUser)

      解除用户与角色的关联。

      在解绑前会检查当前用户是否具有解绑权限、是否是该角色的上级角色或是否为被操作的用户自身。

      Parameters:
      roleUser - 包含用户ID和角色ID的 RoleUser 对象。
    • bindPermissionToRole

      @Transactional public void bindPermissionToRole(RolePermission rolePermission)

      将接口权限绑定到指定角色。

      在绑定前会检查当前用户是否具有绑定权限,以及该权限是否超出其上级角色的权限范围。 如果角色-权限关系已存在,则不做处理。

      Parameters:
      rolePermission - 包含角色ID和权限编码的 RolePermission 对象。
      Throws:
      cn.dev33.satoken.exception.NotPermissionException - 如果尝试授予的权限超出了上级角色的权限范围。
    • releaseRolePermission

      @Transactional public void releaseRolePermission(RolePermission rolePermission)

      解除角色与接口权限的关联。

      在解绑前会检查当前用户是否具有解绑权限或是否是该角色的上级角色。 同时会解除该角色及其所有子角色与该权限的关联。

      Parameters:
      rolePermission - 包含角色ID和权限编码的 RolePermission 对象。