Spring Security中html页面设置hasRole无效的问题
Spring Security中html页面设置hasRole无效的问题
一、前言
学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别。当然,可能有更深入的我没看到。现在把我实际的调试结果分享给大家
二、失效原因及解决
下面是部分示例html页面代码
- <div sec:authorize="hasRole('R_ADMIN')">
- <p class="bg-info">权限0001可见</p>
- </div>
- <div sec:authorize="hasRole('ROLE_MD')">
- <p class="bg-info">权限0002可见</p>
- </div>
- <div sec:authorize="hasAnyAuthority('R_ADMIN')">
- <p class="bg-info">权限0003可见</p>
- </div>
- <div sec:authorize="hasRole('ROLE_MD')">
- <p class="bg-info">权限0004可见</p>
- </div>
- <div sec:authorize="hasAnyAuthority('ADMIN')">
- <p class="bg-info">权限0005可见</p>
- </div>
- <div sec:authorize="hasRole('MD')">
- <p class="bg-info">权限0006可见</p>
- </div>
实际测试发现以下两点。
第一、在html页面中如果要使用hasRole去设置权限,那么必须是以ROLE_开头的角色。而hasAnyAuthority则不存在这个问题。查了一下官方文档并没有什么有用的东西。如果各位同学查到可以留言补充
再次调试发现第二点
第二、在html页面中使用hasRole时可以省略掉ROLE_部分,只在后端放入角色的时候前面加上ROLE_即可,而hasAnyAuthority不支持这么做。即当一个角色名是ROLE_MD的用户登录时,她能看到2、4、6;所以在权限的放入时,比如:auths.add(new SimpleGrantedAuthority(role.getRoleCode()));可以在前面加个ROLE_,html页面仍然写原来的角色名就行。
2019-04-0919:44:51
Spring Security中html页面设置hasRole无效的问题的更多相关文章
- 看源码,重新审视Spring Security中的角色(roles)是怎么回事
在网上看见不少的博客.技术文章,发现大家对于Spring Security中的角色(roles)存在较大的误解,最大的误解就是没有搞清楚其中角色和权限的差别(好多人在学习Spring Security ...
- 六:Spring Security 中使用 JWT
Spring Security 中使用 JWT 1.无状态登录 1.1 什么是有状态? 1.2 什么是无状态 1.3 如何实现无状态 2.JWT 2.1 JWT数据格式 2.2 JWT交互流程 2.3 ...
- 五:Spring Security 中的角色继承问题
Spring Security 中的角色继承问题 以前的写法 现在的写法 源码分析 SpringSecurity 在角色继承上有两种不同的写法,在 Spring Boot2.0.8(对应 Spring ...
- [收藏]Spring Security中的ACL
ACL即访问控制列表(Access Controller List),它是用来做细粒度权限控制所用的一种权限模型.对ACL最简单的描述就是两个业务员,每个人只能查看操作自己签的合同,而不能看到对方的合 ...
- Spring Security 中的过滤器
本文基于 spring-security-core-5.1.1 和 tomcat-embed-core-9.0.12. Spring Security 的本质是一个过滤器链(filter chain) ...
- Spring Security 中的 Bcrypt
最近在写用户管理相关的微服务,其中比较重要的问题是如何保存用户的密码,加盐哈希是一种常见的做法.知乎上有个问题大家可以先读一下: 加盐密码保存的最通用方法是? 对于每个用户的密码,都应该使用独一无二的 ...
- 浅谈使用spring security中的BCryptPasswordEncoder方法对密码进行加密与密码匹配
浅谈使用springsecurity中的BCryptPasswordEncoder方法对密码进行加密(encode)与密码匹配(matches) spring security中的BCryptPass ...
- Spring Security中实现微信网页授权
微信公众号提供了微信支付.微信优惠券.微信H5红包.微信红包封面等等促销工具来帮助我们的应用拉新保活.但是这些福利要想正确地发放到用户的手里就必须拿到用户特定的(微信应用)微信标识openid甚至是用 ...
- 干货|一个案例学会Spring Security 中使用 JWT
在前后端分离的项目中,登录策略也有不少,不过 JWT 算是目前比较流行的一种解决方案了,本文就和大家来分享一下如何将 Spring Security 和 JWT 结合在一起使用,进而实现前后端分离时的 ...
随机推荐
- [Kubernetes]PV,PVC,StorageClass之间的关系详解
在Kubernetes中,容器化一个应用比较麻烦的地方莫过于对其"状态"的管理,而最常见的"状态",莫过于存储状态. 在[Kubernetes]深入理解Stat ...
- 一个账户接管几乎所有阿里巴巴网站(CSRF漏洞+WAF绕过)
场景 文章是关于某些客户端漏洞导致几个阿里巴巴网站的帐户被接管. 条件 TL;DR 必要条件,例如JSONP,某些浏览器处理cookie等行为. 攻击原理 大多数阿里巴巴的网站加载并执行外部JavaS ...
- ubuntu常用命令及操作,包括安装CUDA
chmod Document 这里Document是一个文件夹,文件夹中还有好多子文件,可以发现执行了这条指令以后,其子文件夹的权限并没有改变. 要想改变其子文件夹的权限,应该执行 Document/ ...
- Jenkins构建自动化脚本执行无界面解决方法
场景: jenkins构建selenium自动化用例的时候,会有jenkins自带服务后台运行自动化脚本,可无界面运行IE.Chrome.Firefox. 然而运行IE浏览器时候(IE比较特殊),Je ...
- Springboot2新特性概述
官方说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes 起码 JDK 8 和支持 ...
- 基于物品的协同过滤item-CF 之电影推荐 python
推荐算法有基于协同的Collaboration Filtering:包括 user Based和item Based:基于内容 : Content Based 协同过滤包括基于物品的协同过滤和基于用户 ...
- JS一直是单线程,异步(定时器,ajax请求等)是由浏览器来实现的!(转)
原文地址:https://www.cnblogs.com/woodyblog/p/6061671.html 1.自己画的一张示意图 2.DOM一变化,界面就立刻重新渲染,效率必然很低,所以浏览器的机制 ...
- CSS动画:animation、transition、transform、translate
https://blog.csdn.net/px01ih8/article/details/80780470 一.区分容易混淆的几个属性和值 先区分一下css中的几个属性:animation(动画). ...
- vscode中vue代码颜色插件
vue提示插件[Vscode] 编者寄语:vscode的确是前端开发中很好的工具,安装颜色插件,从视觉上是美的享受.曾经的我遇到了vscode代码全是灰色,黑色的困惑,后来整理找到方法,整 ...
- CISPA Scyther tools
1.Scyther软件作者网站的整理 Scyther工具的网站主页:https://people.cispa.io/cas.cremers/index.html 首先 对Scyther软件的资料进行整 ...