java1234 shiro 第4 課 標籤 註解 詳細說明

 

第一節:權限認證核心要素

權限認證,也就是訪問控制,即在應用中控制誰能訪問哪些資源。
在權限認證中,最核心的三個要素是:權限,角色和用戶;
權限,即操做資源的權利,好比訪問某個頁面,以及對某個模塊的數據的添加,修改,刪除,查看的權利;
角色,是權限的集合,一中角色能夠包含多種權限;
用戶,在 Shiro 中,表明訪問系統的用戶,即 Subject;

 

第二節:受權

1,編程式受權
1.1 基於角色的訪問控制
1.2 基於權限的訪問控制
2,註解式受權
@RequiresAuthentication 要求當前 Subject 已經在當前的 session 中被驗證經過才能被訪問或調用。
@RequiresGuest 要求當前的 Subject 是一個"guest",也就是說,他們必須是在以前的 session 中沒有被驗證或被記住才
能被訪問或調用。
@RequiresPermissions("account:create") 要求當前的 Subject 被容許一個或多個權限,以便執行註解的方法。
@RequiresRoles("administrator") 要求當前的 Subject 擁有全部指定的角色。若是他們沒有,則該方法將不會被執行,而
且 AuthorizationException 異常將會被拋出。
@RequiresUser RequiresUser 註解須要當前的 Subject 是一個應用程序用戶才能被註解的類/實例/方法訪問或調用。一個「應
用程序用戶」被定義爲一個擁有已知身份,或在當前 session 中因爲經過驗證被確認,或者在以前 session 中的'RememberMe'
服務被記住。
3,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 體內容。

 

 

第三節:Permissions

單個權限 query
單個資源多個權限 user:query user:add 多值 user:query,add
單個資源全部權限 user:query,add,update,delete user:*
全部資源某個權限 *:view
實例級別的權限控制
單個實例的單個權限 printer:query:lp7200 printer:print:epsoncolor
全部實例的單個權限 printer:print:*
全部實例的全部權限 printer:*:*
單個實例的全部權限 printer:*:lp7200
單個實例的多個權限 printer:query,print:lp7200

相關文章
相關標籤/搜索