Shiro授權流程


1,授權中涉及的一些概念
     [1]授權:訪問控制,即在應用中認證用戶能否訪問的系統資源(如一個頁面,一個按鈕等)。
     [2]資源:在Web應用中反應為用戶可以訪問的URL。
     [3]權限:表示用戶在應用中是否能夠訪問某個資源。
     [4]角色:權限的集合。
 
2,Shiro授權方式
     [1]編程式
     [2]注解式
     [3]jsp/gsp標簽式
 
3,Shiro默認攔截器
     Shiro內置了很多默認的攔截器,比如身份驗證,授權等相關的。默認攔截器可以參考org.apache.web.filter.mgt.DefaultFilter中的枚舉攔截器。
 
 
4,Shiro授權流程
     [1]授權需要繼承 AuthorizingRealm 類(該類繼承自 AuthenticationRealm 類),並重寫其 doGetAuthorizationInfo() 方法。
  

  

 

         
     
     [2]多Realm授權的通過標准,多Realm應用下,使用ModularRealmAuthorizer授權器,只要有一個Realm授權就算通過。在ModularRealmAuthorizer循環授權的時候,還是走的第[1]條的流程,所以不用擔心。
  

 

############################### Shiro jsp標簽庫 ##########################################
Shiro 提供了JSTL標簽用於在JSP/GSP頁面進行權限控制,如根據認證用戶相應的頁面按鈕。
首先,需要導入標簽庫:
<%@ taglib uri="http://org.apache.shiro/tags" uri="shiro" %>
 
1,guest標簽
     游客登陸時,顯示標簽體內的內容。
2,authenticated標簽
     用戶認證通過,顯示標簽體內的內容。
3,noAuthenticated標簽
     用戶未通過認證(包括【記住我】方式登陸),顯示標簽體內的內容。
4,principal標簽
     顯示用戶身份信息,如果realm傳遞的principal是一個對象,可以使用該標簽的property來顯示具體屬性的值。
5,hasRole和hasAnyRoles
     擁有指定的角色,顯示標簽體內的內容。
6,lacksRole
     沒有指定的角色,顯示標簽體內的內容。
7,hasPermissioin和hasAnyPermissions
     擁有指定的權限,顯示標簽體內的內容。
8,lacksPermission
     沒有指定的角色,顯示標簽體內的內容。
 
 
 
############################### Shiro 注解 ##########################################
shiro注解用在Service和Controller層,但是如果Service層有事物注解,那么shiro注解要放在Controller層。因為兩個代理對象在類型轉換時會出現異常。
 
1,RequiresAuthentication
     要求用戶已經被認證過。
2,RequiresGuest注解
     要求訪客才能訪問。
3,RequiresPermissions
     要求擁有指定的權限。
4,RequiresRoles
     要求擁有指定的角色。
 
如果達不到注解所需要的要求,會拋出異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM