1. 程式人生 > >Apache Shiro 標籤模式授權

Apache Shiro 標籤模式授權

Apache Shiro 標籤方式授權

Shiro提供了一套JSP標籤庫來實現頁面級的授權控制。 

在使用Shiro標籤庫前,首先需要在JSP引入shiro標籤: 

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

下面一一介紹Shiro的標籤: 

guest標籤 

驗證當前使用者是否為“訪客”,即未認證(包含未記住)的使用者。

<shiro:guest>  

Hi there!  Please <a href="login.jsp">Login</a> or <a href="signup.jsp">Signup</a> today!  

</shiro:guest>

user標籤 

認證通過或已記住的使用者。

<shiro:user>  

    Welcome back John!  Not John? Click <a href="login.jsp">here<a> to login.  

</shiro:user>

authenticated標籤 

已認證通過的使用者。不包含已記住的使用者,這是與user標籤的區別所在。 

<shiro:authenticated>  

    <a href="updateAccount.jsp">Update your contact information</a>.  

</shiro:authenticated>

notAuthenticated標籤 

未認證通過使用者,與authenticated標籤相對應。與guest標籤的區別是,該標籤包含已記住使用者。 

<shiro:notAuthenticated>  

    Please <a href="login.jsp">login</a> in order to update your credit card information.  

</shiro:notAuthenticated>

principal 標籤 

輸出當前使用者資訊,通常為登入帳號資訊。

Hello, <shiro:principal/>, how are you today?  

hasRole標籤 

驗證當前使用者是否屬於該角色。

<shiro:hasRole name="administrator">  

    <a href="admin.jsp">Administer the system</a>  

</shiro:hasRole>

lacksRole標籤 

hasRole標籤邏輯相反,當用戶不屬於該角色時驗證通過。

<shiro:lacksRole name="administrator">  

    Sorry, you are not allowed to administer the system.  

</shiro:lacksRole>

hasAnyRole標籤 

驗證當前使用者是否屬於以下任意一個角色。 

<shiro:hasAnyRoles name="developer, project manager, administrator">  

    You are either a developer, project manager, or administrator.  

</shiro:hasAnyRoles>

hasPermission標籤 

驗證當前使用者是否擁有指定許可權。

<shiro:hasPermission name="user:create">  

    <a href="createUser.jsp">Create a new User</a>  

</shiro:hasPermission>

lacksPermission標籤 

hasPermission標籤邏輯相反,當前使用者沒有制定許可權時,驗證通過。

<shiro:hasPermission name="user:create">  

    <a href="createUser.jsp">Create a new User</a>  

</shiro:hasPermission>