Shiro學習筆記(二)---Shiro架構
Shiro從外部來劃分主要包括Subject,SecurityManager,Realm三大塊,先看架構圖,作用下面詳細說。
Subject其實就是一個門面,代表“當前使用者”,應用程式碼直接與Subject互動,最後委託給SecurityManager,SecurityManager是實際的執行者。
SecurityManager:安全管理器,所有安全驗證的操作都與它進行互動,他管理著所有的Subject,他是Shiro的核心,相當於SpringMvc中的DispatcherServlet。
Realm主要的作用是認證和授權,SecurityManager要驗證使用者的身份都要從Realm中獲取相應的使用者資訊進行比較以確定使用者身份是否合法,也需要從Realm中獲取相應使用者的角色和許可權進行驗證使用者是否能操作,也可以把Relam看成dataSource。
從內部來看架構圖如下:
Subject:與應用互動的”使用者“,並不一定是真正的使用者,與當前應用互動的都可以是Subject
SecurityManager是Shiro的核心,負責所有Subject的管理和認證,授權,session,快取管理。
Authenticator:負責Subject認證,可以自定義實現,可以設定認證策略,即什麼情況下使用者通過認證
Authorizer:授權器,即使用者訪問控制器,即控制使用者那些功能可以操作,通常是那些網頁(Url)使用者可以訪問,那些不能訪問。
Realm:可以認為是安全實體資料來源,用於獲取 安全實體,一般都會自定義Realm,後面的例項會給出。
SessionManager:會話管理器,不僅在JavaEE專案中可以使用,Java專案也可以使用,可以用在SpringMVC的service中,並且Controller中通過HttpSession設定的值,Service中用Shiro Session也可以獲取值。
CacheManager:快取控制器,用來管理使用者的角色,許可權快取。因為這些資料在web中很少改變,用快取可以提高效能。
CryptoGraphy:密碼模組。
注意:
這些內容是用來自己複習用的,如有侵權,請聯絡刪除,謝謝!!!