权限设计
# 权限方法
@PreAuthorize
注解用于配置接口要求用户拥有某些权限才可访问,它拥有如下方法
方法 | 参数 | 描述 |
---|---|---|
hasPermi | String | 验证用户是否具备某权限 |
lacksPermi | String | 验证用户是否不具备某权限,与 hasPermi逻辑相反 |
hasAnyPermi | String | 验证用户是否具有以下任意一个权限 |
hasRole | String | 判断用户是否拥有某个角色 |
lacksRole | String | 验证用户是否不具备某角色,与 isRole逻辑相反 |
hasAnyRoles | String | 验证用户是否具有以下任意一个角色,多个逗号分隔 |
对比若依增加
@PreAuthorize("@ss.resourceAuth()")
验证用户的接口权限
# 使用示例
- 数据权限示例。
// 符合system:user:list权限要求
@PreAuthorize("@ss.hasPermi('system:user:list')")
// 不符合system:user:list权限要求
@PreAuthorize("@ss.lacksPermi('system:user:list')")
// 符合system:user:add或system:user:edit权限要求即可
@PreAuthorize("@ss.hasAnyPermi('system:user:add,system:user:edit')")
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 角色权限示例。
// 属于user角色
@PreAuthorize("@ss.hasRole('user')")
// 不属于user角色
@PreAuthorize("@ss.lacksRole('user')")
// 属于user或者admin之一
@PreAuthorize("@ss.hasAnyRoles('user,admin')")
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 接口权限
@PreAuthorize("@ss.resourceAuth()")
1
角色接口分配在后台管理:角色管理 -> 分配接口
使用注意:要在 Controller 类上加上注解
@ApiResource(name = "信息墙api", appCode = "campus", resBizType = ResBizTypeEnum.BUSINESS)
1
权限提示
超级管理员拥有所有权限,不受权限约束。
最后更新: 2023/06/30, 0:06:00