Apache Shiro(四)——Shiro 標籤與許可權註解
阿新 • • 發佈:2018-11-02
一、Shiro 標籤
Shiro 提供了 JSTL 標籤用於在 JSP 頁面進行許可權控制,如根據登入使用者顯示相應的頁面按鈕。
guest 標籤:使用者沒有身份驗證時顯示相應資訊,即遊客訪問資訊。
user 標籤:使用者已經經過認證/記住我登入後顯示相應的資訊。
authenticated 標籤:使用者已經身份驗證通過,即Subject.login登入成功,不是記住我登入的。
notAuthenticated 標籤:使用者未進行身份驗證,即沒有呼叫Subject.login進行登入,包括記住我自動登入的也屬於未進行身份驗證。
pincipal 標籤:顯示使用者身份資訊
hasRole 標籤:如果當前 Subject 有角色將顯示 body 體內容:
hasAnyRoles 標籤:如果當前Subject有任意一個角色(或的關係)將顯示body體內容。
lacksRole:如果當前 Subject 沒有角色將顯示 body 體內容。
hasPermission:如果當前 Subject 有許可權將顯示 body 體內容。
lacksPermission:如果當前Subject沒有許可權將顯示body體內容。
二、許可權註解
@RequiresAuthentication
@RequiresUser:表示當前 Subject 已經身份驗證或者通過記住我登入的。
@RequiresGuest:表示當前Subject沒有身份驗證或通過記住我登入過,即是遊客身份。
@RequiresRoles(value={“admin”, “user”}, logical=Logical.AND):表示當前 Subject 需要角色 admin 和user。
@RequiresPermissions (value={“user:a”, “user:b”},logical= Logical.OR)
三、自定義攔截器
通過自定義攔截器可以擴充套件功能,例如:動態url-角色/許可權訪問控制的實現、根據 Subject 身份資訊獲取使用者資訊繫結到 Request(即設定通用資料)、驗證碼驗證、線上使用者資訊的儲存等。