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 结合在一起使用,进而实现前后端分离时的 ...
随机推荐
- 20175204 张湲祯 2018-2019-2《Java程序设计》第七周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第七周学习总结 教材学习内容总结 -第八章常用实用类要点: 一.String类: 1.String类所在的包:java. ...
- 为什么要使用`QuerySet.iterator()`
用django的custom command功能,写了一个脚本,目的是修正生成环境的数据,tqdm告诉我运行时长预估是2小时. 一个小时后,正在吃午饭的我,接到了很多微信推送.客户告诉我服务不可用,同 ...
- patindex
功能:返回模式在字符串中第一次出现的位置 解释:patindex('%pattern%',expression) pattern:要查找的模式 expression:被找的字符串 例子:select ...
- Python IDLE配置清屏快捷键(Ctrl+L)
1.在Python\Lib\idlelib下,新建一个ClearWindow.py文件(没有时就新建),内容如下: """ Clear Window Extension ...
- Nginx负载-nginx转发到Swoole服务器(nginx配置文件变更)
- 打造vim IDE
pathogen.vim:vim插件目录自动识别.加载(注意:能用pathogen.vim安装插件,就不要用Vundle.因为Vundle下载插件速度非常慢.) https://github.com/ ...
- !!!css如何让img图片居中?css的display属性实现图片居中(代码实例)
在我们开发前端页面的时候,为了让页面效果美观,会让图片呈现居中效果.那么css怎么让img图片居中显示呢?本篇文章给大家带来css如何让img图片居中?css的display属性实现图片居中(代码实例 ...
- 简单使用sp_executesql 参数化
declare @totalCount1 int output declare @id1 varchar(10) declare @strsql1 nvarchar(max)=N'' declare ...
- python正则表达式判断素数【厉害了】
参考: https://www.cnblogs.com/imjustice/p/check_prime_by_using_regular_expression.html for i in range( ...
- php换行和<br />互转
使用场景:在后台处理textarea换行的时候出现了问题, textarea里面的换行就是/n, 在textarea里面是有换行效果的,但是输出到其它地方没有效果,这时候就要用到PHP的神奇的nl2b ...