spring security中Authority、Role的区别
最近在研究spring security时,大概研究了一下Authority、Role之间到底有什么本质的区别。
如果你使用的是hasRole方法来判断你的登录用户是否有权限访问某个接口,那么你初始化User时,放入的GrantedAuthority的字符就需要包含ROLE_前缀,参见下图红箭头:
接口访问权限配置应该是这样:
或者是这样:
如果你使用的是hasAuthority,那么你初始化User时,放入的GrantedAuthority的字符就不需要包含ROLE_前缀了,参见下图红箭头:
接口访问权限配置应该是这样:
或者是这样:
我使用的是spring security 5.1.6版本,从源码的角度可以看出使用不同的hasAuthority、hasRole方法判断权限时的区别,其实他们最终调用的都是hasAnyAuthorityName()方法,唯一不同的就是hasRole()在调用时,传递了前缀defaultRolePrefix,这就导致了他们两者之间比较的字符产生了差异。spring security应该想代表的意思就是权限字符加了ROLE_就是角色Role,如果没有加就是一个权限Authority,大家根据自己的实际情况灵活选用就好啦,希望给大家解释清楚了~。
spring security中Authority、Role的区别相关推荐
- Spring Security 中,想在权限中使用通配符,怎么做?
小伙伴们知道,在 Shiro 中,默认是支持权限通配符的,例如系统用户有如下一些权限: system:user:add system:user:delete system:user:select sy ...
- Spring Security 中的 hasRole 和 hasAuthority 有区别吗?
我相信很多小伙伴在初次接触 Spring Security 时,一定会被这个问题所困扰,例如如下两段配置: http.authorizeRequests().antMatchers("/ad ...
- Spring Security中文文档
Spring Security中文文档 来源:https://www.springcloud.cc/spring-security.html#overall-architecture 作者 Ben A ...
- 一起搞清楚 Spring Security 中的 UserDetails
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 170元买400元书的机会又来啦! 1. 前言 前一篇介绍了 Spring Security ...
- springsecurity sessionregistry session共享_要学就学透彻!Spring Security 中 CSRF 防御源码解析...
今日干货 刚刚发表查看:66666回复:666 公众号后台回复 ssm,免费获取松哥纯手敲的 SSM 框架学习干货. 上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要 ...
- Http基本身份验证在Spring Security中如何工作?
在上一篇文章中,您学习了如何在基于Spring安全性的Java应用程序中启用Http基本身份验证 ,现在,我们将进一步进一步了解http基本身份验证在Spring安全性中的工作原理. 如果您还记得的话 ...
- 如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证
在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 . 如 ...
- 要学就学透彻!Spring Security 中 CSRF 防御源码解析
上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要和大家聊了 Spring Security 中处理该问题的几种办法. 今天松哥来和大家简单的看一下 Spring Se ...
- 关于Spring Security中显示There is no PasswordEncoder mapped for the id “null“的问题分析
关于Spring Security中显示There is no PasswordEncoder mapped for the id "null"的问题分析 1 Spring Sec ...
最新文章
- crontab 只执行一次_linux计划任务-单次任务(at)与循环任务(crontab)
- python工具-文件及文件夹移动及处理
- SQL优化(二) 快速计算Distinct Count
- 解决pip异常:No module named ‘pip‘
- Git的remote
- Django的外键创建
- 026_lsof命令经验总结
- phpcmsV9各种模板页面调用文章 hits 点击量和评论量 - 代码总结分类
- SPH(光滑粒子流体动力学)流体模拟实现三:Marching Cube算法(2)
- 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
- 视觉里程计07 Qt的一些bug修改记录
- SAS之COMPBL、DEQUOTE函数
- grafana和zabbix的端口映射
- golang zip 解压、压缩文件
- Linux磁盘管理:LVM逻辑卷管理
- simulink仿真之阶梯步长
- dtcms表单提交数据,获取表单数据,根据表单查询数据,返回查询条数
- 腾讯im及时登录注册
- 二维数组中的查找(两种解法,各有千秋)
- 小杨哥陷入打假风波,会变成下一个辛巴吗?