当前位置: 首页 » 资讯 » 电商 » 正文

Spring Security中html页面设置hasRole无效的问题

发布日期:2023-06-22 16:34:35     浏览次数:3
核心提示:Spring Security中html页面设置hasRole无效的问题 一、前言 学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别。当然,可能有更深入的我
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;所以在权限的放入时,比如:(new SimpleGrantedAuthority(()));可以在前面加个ROLE_,html页面仍然写原来的角色名就行。

2019-04-0919:44:51

头条分类

免责声明:本站所有信息由各公司自行发布,请在交易前确认真实合法性,本站不承担任何交易及此类作品侵权行为的直接责任及连带责任!