【若依】@PreAuthorize-创新互联

提示:自己学习帮助记忆,有问题指出,不喜勿喷!

创新互联建站长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为安徽企业提供专业的网站制作、成都网站制作安徽网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

文章目录
  • 前言
  • 一、权限方法
  • 二、使用示例
    • 1.数据示例
    • 2.角色权限示例
  • 三、公开接口
  • 总结


前言

@PreAuthorize:

Spring Security提供了Spring EL表达式,允许我们在定义接口访问的方法上面添加注解,来控制访问权限


一、权限方法
方法参数描述
hasPermiString验证用户是否具备某权限
lacksPermiString验证用户是否不具备某权限,与hasPermi逻辑相反
hasAnyPermiString验证用户是否具有以下任意一个权限
hasRoleString判断用户是否拥有某个权限
lacksRoleString验证用户是否不具备某个权限,与hasRole逻辑相反
hasAnyRolesString验证用户是否具有以下任意一个角色,多个逗号分隔
二、使用示例

其中@ss代表的是PermissionService (opens new window)服务,对每个接口拦截并调用PermissionService的对应方法判断接口调用者的权限。

1.数据示例

代码如下(示例):

// 符合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')")
2.角色权限示例

代码如下(示例):

// 属于user角色
@PreAuthorize("@ss.hasRole('user')")

// 不属于user角色
@PreAuthorize("@ss.lacksRole('user')")

// 属于user或者admin之一
@PreAuthorize("@ss.hasAnyRoles('user,admin')")

权限提示:超级管理员拥有所有权限,不受权限约束。

三、公开接口

如果有些接口是不需要验证权限可以公开访问的,这个时候就需要我们给接口放行。
使用注解方式,只需要在Controller的类或方法上加入@Anonymous该注解即可

// @PreAuthorize("@ss.xxxx('....')") 注释或删除掉原有的权限注解
@Anonymous
@GetMapping("/list")
public Listlist(SysXxxx xxxx)
{return xxxxList;
}
总结

来源于若依官方文档,记一下帮助记忆!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:【若依】@PreAuthorize-创新互联
URL地址:http://hbruida.cn/article/cesodp.html