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

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

1、前言html

    学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别。固然,可能有更深刻的我没看到。如今把我实际的调试结果分享给你们spring

2、失效缘由及解决后端

    下面是部分示例html页面代码post

  1.  
    <div sec:authorize="hasRole('R_ADMIN')">
  2.  
    <p class="bg-info">权限0001可见</p>
  3.  
    </div>
  4.  
    <div sec:authorize="hasRole('ROLE_MD')">
  5.  
    <p class="bg-info">权限0002可见</p>
  6.  
    </div>
  7.  
    <div sec:authorize="hasAnyAuthority('R_ADMIN')">
  8.  
    <p class="bg-info">权限0003可见</p>
  9.  
    </div>
  10.  
    <div sec:authorize="hasRole('ROLE_MD')">
  11.  
    <p class="bg-info">权限0004可见</p>
  12.  
    </div>
  13.  
    <div sec:authorize="hasAnyAuthority('ADMIN')">
  14.  
    <p class="bg-info">权限0005可见</p>
  15.  
    </div>
  16.  
    <div sec:authorize="hasRole('MD')">
  17.  
    <p class="bg-info">权限0006可见</p>
  18.  
    </div>

   实际测试发现如下两点。测试

    第1、在html页面中若是要使用hasRole去设置权限,那么必须是以ROLE_开头的角色。而hasAnyAuthority则不存在这个问题。查了一下官方文档并无什么有用的东西。若是各位同窗查到能够留言补充spa

     再次调试发现第二点调试

    第2、在html页面中使用hasRole时能够省略掉ROLE_部分,只在后端放入角色的时候前面加上ROLE_便可,而hasAnyAuthority不支持这么作。即当一个角色名是ROLE_MD的用户登陆时,她能看到二、四、6;因此在权限的放入时,好比:auths.add(new SimpleGrantedAuthority(role.getRoleCode()));能够在前面加个ROLE_,html页面仍然写原来的角色名就行。code

2019-04-0919:44:51htm

相关文章
相关标签/搜索