Spring Security中html頁面設置hasRole無效的問題

Spring Security中html頁面設置hasRole無效的問題

1、前言html

    學了幾天的spring Security,偶然發現的hasRole和hasAnyAuthority的區別。固然,可能有更深刻的我沒看到。如今把我實際的調試結果分享給你們spring

2、失效緣由及解決後端

    下面是部分示例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>

   實際測試發現如下兩點。spa

    第1、在html頁面中若是要使用hasRole去設置權限,那麼必須是以ROLE_開頭的角色。而hasAnyAuthority則不存在這個問題。查了一下官方文檔並無什麼有用的東西。若是各位同窗查到能夠留言補充調試

     再次調試發現第二點code

    第2、在html頁面中使用hasRole時能夠省略掉ROLE_部分,只在後端放入角色的時候前面加上ROLE_便可,而hasAnyAuthority不支持這麼作。即當一個角色名是ROLE_MD的用戶登陸時,她能看到二、四、6;因此在權限的放入時,好比:auths.add(new SimpleGrantedAuthority(role.getRoleCode()));能夠在前面加個ROLE_,html頁面仍然寫原來的角色名就行。htm

2019-04-0919:44:51blog

原文出處:https://www.cnblogs.com/itboxue/p/10679234.html文檔

相關文章
相關標籤/搜索