最近在研究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的区别相关推荐

  1. Spring Security 中,想在权限中使用通配符,怎么做?

    小伙伴们知道,在 Shiro 中,默认是支持权限通配符的,例如系统用户有如下一些权限: system:user:add system:user:delete system:user:select sy ...

  2. Spring Security 中的 hasRole 和 hasAuthority 有区别吗?

    我相信很多小伙伴在初次接触 Spring Security 时,一定会被这个问题所困扰,例如如下两段配置: http.authorizeRequests().antMatchers("/ad ...

  3. Spring Security中文文档

    Spring Security中文文档 来源:https://www.springcloud.cc/spring-security.html#overall-architecture 作者 Ben A ...

  4. 一起搞清楚 Spring Security 中的 UserDetails

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 170元买400元书的机会又来啦! 1. 前言 前一篇介绍了 Spring Security ...

  5. springsecurity sessionregistry session共享_要学就学透彻!Spring Security 中 CSRF 防御源码解析...

    今日干货 刚刚发表查看:66666回复:666 公众号后台回复 ssm,免费获取松哥纯手敲的 SSM 框架学习干货. 上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要 ...

  6. Http基本身份验证在Spring Security中如何工作?

    在上一篇文章中,您学习了如何在基于Spring安全性的Java应用程序中启用Http基本身份验证 ,现在,我们将进一步进一步了解http基本身份验证在Spring安全性中的工作原理. 如果您还记得的话 ...

  7. 如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证

    在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 . 如 ...

  8. 要学就学透彻!Spring Security 中 CSRF 防御源码解析

    上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御.主要和大家聊了 Spring Security 中处理该问题的几种办法. 今天松哥来和大家简单的看一下 Spring Se ...

  9. 关于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 ...

最新文章

  1. crontab 只执行一次_linux计划任务-单次任务(at)与循环任务(crontab)
  2. python工具-文件及文件夹移动及处理
  3. SQL优化(二) 快速计算Distinct Count
  4. 解决pip异常:No module named ‘pip‘
  5. Git的remote
  6. Django的外键创建
  7. 026_lsof命令经验总结
  8. phpcmsV9各种模板页面调用文章 hits 点击量和评论量 - 代码总结分类
  9. SPH(光滑粒子流体动力学)流体模拟实现三:Marching Cube算法(2)
  10. 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
  11. 视觉里程计07 Qt的一些bug修改记录
  12. SAS之COMPBL、DEQUOTE函数
  13. grafana和zabbix的端口映射
  14. golang zip 解压、压缩文件
  15. Linux磁盘管理:LVM逻辑卷管理
  16. simulink仿真之阶梯步长
  17. dtcms表单提交数据,获取表单数据,根据表单查询数据,返回查询条数
  18. 腾讯im及时登录注册
  19. 二维数组中的查找(两种解法,各有千秋)
  20. 小杨哥陷入打假风波,会变成下一个辛巴吗?

热门文章

  1. 微信小程序 之 程序题
  2. 计算机文件只读设置取消,如何删除只读文件
  3. 公司网站源码(公司官网源码)PHP
  4. 简单聊聊HDFS RBF第二阶段工作近期的一些进展
  5. 电脑技术员联盟 Ghost XP Sp3 装机版 V5.8下载 .
  6. 索尼T700完全用机指南【转自太平洋电脑网】
  7. 【微机原理 实验】 响铃及接收日期程序(含汇编代码)
  8. STM32H743必要外围电路分析
  9. 计算机共享的无线手机连上但上不去网的解决方法
  10. Java中正则表达式的使用