1. 程式人生 > >細說shiro之二:組件架構

細說shiro之二:組件架構

定義 then lms 信息 auth 自己的 apach cache author

官網:https://shiro.apache.org/
技術分享圖片


技術分享圖片

Shiro主要組件包括:Subject,SecurityManager,Authenticator,Authorizer,SessionManager,CacheManager,Cryptography,Realms。


1. Subject
Subject表示與系統交互的對象,可以是登錄系統的操作用戶,也可能是另外一個軟件系統。
Subject類圖:
技術分享圖片

2. SecurityManager
SecurityManager是Shiro架構最核心的組件。實際上,SecurityManager就是Shiro框架的控制器,協調其他組件一起完成認證和授權,如下圖所示:
技術分享圖片

SecurityManager類圖:
技術分享圖片

3. Authenticator
Authenticator用於認證,協調一個或者多個Realm,從Realm指定的數據源取得數據之後進行執行具體的認證。
見org.apache.shiro.authc.pam.ModularRealmAuthenticator源碼:
技術分享圖片

Authenticator類圖:
技術分享圖片

4. Authorizer
Authorizer用戶訪問控制授權,決定用戶是否擁有執行指定操作的權限。
見org.apache.shiro.authz.ModularRealmAuthorizer源碼:
技術分享圖片

Authorizer類圖:
技術分享圖片

5. SessionManager


Shiro與生俱來就支持會話管理,這在安全類框架中都是獨一無二的功能。即便不存在web容器環境,shiro都可以使用自己的會話管理機制,提供相同的會話API。
SessionManager類圖:
技術分享圖片

6. CacheManager
緩存組件,用於緩存認證信息等。
CacheManager類圖:

技術分享圖片

7. Cryptography
Shiro提供了一個加解密的命令行工具jar包,需要單獨下載使用。
詳見:https://shiro.apache.org/download.html

8. Realms
Realm定義了訪問數據的方式,用來連接不同的數據源,如:LDAP,關系數據庫,配置文件等等。
Realm類圖:
技術分享圖片

細說shiro之二:組件架構