zoukankan      html  css  js  c++  java
  • Spring Security中html页面设置hasRole无效的问题

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

    一、前言

        学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别。当然,可能有更深入的我没看到。现在把我实际的调试结果分享给大家

    二、失效原因及解决

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

    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>

       实际测试发现以下两点。

        第一、在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__SpringMVC__Mybatis整合
    Mybatis__延迟加载
    mybatis__关联关系__1对1,1对多
    动态SQL基本语句用法
    log4j的使用 && slf4j简单介绍
    Mybatis接口与映射文件
    ORM简介 && MyBatis和Hibernate的不同 && 动态代理简单实现Mybatis基本使用
    20169207《linux内核原理与分析》第二周作业
    关于Linux学习中的问题和体会
    [algothrim]URL相似度计算的思考
  • 原文地址:https://www.cnblogs.com/itboxue/p/10679234.html
Copyright © 2011-2022 走看看