細說shiro之二:組件架構
官網: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之二:組件架構