shiro_06_shiro標籤使用以及shiro會話機制

shiro標籤使用

前面介紹權限認證時,說了有3種方式:編程式授權,jsp標籤,註解式授權,沒測試一下,這一篇來測試一下shiro的標籤的使用:

也可以參考官方文檔:jsp標籤

首先要引入標籤:在jsp頁面加

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

Guest 標籤:用戶沒有身份驗證時顯示相應信息,即遊客訪問信息;

User 標籤:用戶已經身份驗證/記住我登錄後顯示相應的信息;

Authenticated 標籤:用戶已經身份驗證通過,即 Subject.login 登錄成功,不是記住我登錄的。

notAuthenticated 標籤:用戶沒有身份驗證通過,即沒有調用 Subject.login 進行登錄,包括記住我自動登錄 的也屬於未進行身份驗證。

principal 標籤 顯示用戶身份信息,默認調用 Subject.getPrincipal()獲取,即 Primary Principal。

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

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

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

hasPermission 標籤 如果當前 Subject 有權限將顯示 body 體內容。

lacksPermission 標籤 如果當前 Subject 沒有權限將顯示 body 體內容。 

統一在success.jsp頁面測試,用不同用戶登錄後測試 

用戶角色及權限配置:

測試hasRole標籤:

用java用戶測試hasRole(admin):

<shiro:hasRole name="admin">
	該用戶有admin角色
</shiro:hasRole>

 


測試lacksRole(admin);
用jack用戶登錄:

<shiro:lacksRole name="admin">
	沒有admin角色
</shiro:lacksRole>


測試hasAnyRoles:

<shiro:hasAnyRoles name="admin,teacher">
	您有admin,teacher角色其中一個或者都有
</shiro:hasAnyRoles>


測試hasPermission:

<shiro:hasPermission name="user:add,user:delete">
	您有用戶添加,刪除功能的權限
</shiro:hasPermission>

name裏面可以寫一個或多個權限的名字


測試lacksPermission:

<shiro:lacksPermission name="student:add,user:add">
	您沒有同時添加學生和添加用戶的權限
</shiro:lacksPermission>


測試principal標籤:

hello,<shiro:principal/><br/>

相當於:hello,<%= SecurityUtils.getSubject().getPrincipal().toString() %>


測試Authenticated

<shiro:authenticated>
	您已經登錄
</shiro:authenticated>

user,guest標籤就不一一測試了,知道怎麼使用就可以。


shiro會話機制

shiro自身提供了一種會話機制,有自己封裝的session,和servlet提供的session一樣的作用,當然如果不想用shiro的會話機制,也可以使用servlet的會話機制:

舉個例子:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章