shiro jsp標籤使用

來源:互聯網
上載者:User

標籤:通過   type   表示   相關   property   asp   pac   mission   jsp   

Shiro提供了JSTL標籤用於在JSP/GSP頁面進行許可權控制,如根據登入使用者顯示相應的頁面按鈕。

 

 

匯入標籤庫

Java代碼  
  1. <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>  

標籤庫定義在shiro-web.jar包下的META-INF/shiro.tld中定義。

 

guest標籤 

Java代碼  
  1. <shiro:guest>  
  2. 歡迎遊客訪問,<a href="${pageContext.request.contextPath}/login.jsp">登入</a>  
  3. </shiro:guest>   

 

使用者沒有身分識別驗證時顯示相應資訊,即遊客訪問資訊。

 

user標籤 

Java代碼  
  1. <shiro:user>  
  2. 歡迎[<shiro:principal/>]登入,<a href="${pageContext.request.contextPath}/logout">退出</a>  
  3. </shiro:user>   

使用者已經身分識別驗證/記住我登入後顯示相應的資訊。

  

authenticated標籤 

Java代碼  
  1. <shiro:authenticated>  
  2.     使用者[<shiro:principal/>]已身分識別驗證通過  
  3. </shiro:authenticated>   

使用者已經身分識別驗證通過,即Subject.login登入成功,不是記住我登入的。    

 

notAuthenticated標籤

<span style="font-size:14px;"><shiro:notAuthenticated>    未身分識別驗證(包括記住我)</shiro:notAuthenticated> </span>

使用者已經身分識別驗證通過,即沒有調用Subject.login進行登入,包括記住我自動登入的也屬於未進行身分識別驗證。 

 

principal標籤 

<span style="font-size:14px;"><shiro: principal/></span>

顯示使用者身份資訊,預設調用Subject.getPrincipal()擷取,即Primary Principal。

 

Java代碼 
  1. <shiro:principal type="java.lang.String"/>  

相當於Subject.getPrincipals().oneByType(String.class)。 

 

Java代碼 
  1. <shiro:principal type="java.lang.String"/>  

相當於Subject.getPrincipals().oneByType(String.class)。

 

Java代碼 
  1. <shiro:principal property="username"/>  

相當於((User)Subject.getPrincipals()).getUsername()。   

 

hasRole標籤 

Java代碼 
  1. <shiro:hasRole name="admin">  
  2.     使用者[<shiro:principal/>]擁有角色admin<br/>  
  3. </shiro:hasRole>   

如果當前Subject有角色將顯示body體內容。

 

hasAnyRoles標籤 

Java代碼 
  1. <shiro:hasAnyRoles name="admin,user">  
  2.     使用者[<shiro:principal/>]擁有角色admin或user<br/>  
  3. </shiro:hasAnyRoles>   

如果當前Subject有任意一個角色(或的關係)將顯示body體內容。 

 

lacksRole標籤 

Java代碼 
  1. <shiro:lacksRole name="abc">  
  2.     使用者[<shiro:principal/>]沒有角色abc<br/>  
  3. </shiro:lacksRole>   

如果當前Subject沒有角色將顯示body體內容。 

  

hasPermission標籤

Java代碼 
  1. <shiro:hasPermission name="user:create">  
  2.     使用者[<shiro:principal/>]擁有許可權user:create<br/>  
  3. </shiro:hasPermission>   

如果當前Subject有許可權將顯示body體內容。 

  

lacksPermission標籤

Java代碼 
  1. <shiro:lacksPermission name="org:create">  
  2.     使用者[<shiro:principal/>]沒有許可權org:create<br/>  
  3. </shiro:lacksPermission>   

如果當前Subject沒有許可權將顯示body體內容。

 

另外又提供了幾個許可權控制相關的標籤:

 

匯入自訂標籤庫 

Java代碼 
  1. <%@taglib prefix="zhang" tagdir="/WEB-INF/tags" %>  

 

樣本

Java代碼 
  1. <zhang:hasAllRoles name="admin,user">  
  2.     使用者[<shiro:principal/>]擁有角色admin和user<br/>  
  3. </zhang:hasAllRoles>  
  4. <zhang:hasAllPermissions name="user:create,user:update">  
  5.     使用者[<shiro:principal/>]擁有許可權user:create和user:update<br/>  
  6. </zhang:hasAllPermissions>  
  7. <zhang:hasAnyPermissions name="user:create,abc:update">  
  8.     使用者[<shiro:principal/>]擁有許可權user:create或abc:update<br/>  
  9. </zhang:hasAnyPermissions>   

hasAllRoles表示擁有所有相關的角色;hasAllPermissions表示擁有所有相關的許可權;hasAnyPermissions表示擁有任意一個相關的許可權。(轉)

shiro jsp標籤使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.