Shiro學習筆記(1)-Shiro簡介

什麼是Shiro

簡單地來說,Apache Shiro是Java的一個安全框架。

Shiro能實現的功能

Shiro功能圖

(1)主要特性:

  • Authentication: 驗證用戶身份,通常指登錄。
  • Authorization :控制權限
  • Session Management :會話管理,用戶登錄成功後相關信息保存在會話中。可以是Web環境也可以是Java環境。
  • Cryptography:加密

(2)額外特性:

  • Web Support:提供web應用支持,可以很方便集成到web環境
  • Caching: 緩存,來保存操作的高效性。
  • Concurrency: 支持多線程應用
  • Testing: 支持單元測試
  • Run As: 允許一個用戶假裝成另一個用戶進行操作
  • Remember Me : 記住用戶的身份信息

Shiro架構

從應用角度查看Shiro是如何工作的

Shiro工作圖

從圖片上可以看出來,Shiro有三個重要的概念:

  1. Subject: 主體,指的是當前和應用交互的用戶,通常是人也可以指第三方服務或者後臺進程等系列應用。所有的Subject都會綁定到SecurityManager,所以當我們和Subject進行交互時,其實真正作用的是SecurityManager。
  2. SecurityManager:SecurityManager 是Shiro架構核心,它將所有的內部安全組件組合在一起。它充當一種引導者的角色,負責所有與安全有關的事務。
  3. Realm: 域,充當和具體的安全數據交互的角色,從某種意義上來說,其實就是DAO層。SecurityManager管理者Realm進行身份驗證或者權限驗證。

具體架構

詳細底層架構圖

  1. Subject:和當前應用交互的主體(可以是人、系統…)
  2. SecurityManager : Shiro的核心,管理所有的Subject,保證所有的組件成功運行。
  3. Authenticator :認證器,負責主體身份認證。 Authentication Strategy是Authenticator中用來對認證方式進行定義的部分,決定是所有的Realm都需要通過或者其他認證方式。
  4. Authorizer :授權器,用來對主體訪問某個資源進行權限認證。
  5. SessionManager :會話管理器,用來管理Session的生命週期(和Servlet的Session類似) ,無論是在Web環境還是普通環境,Shiro都會創建一個Session。SessionDAO 用來對Session進行持久化操作。
  6. CacheManager :用來管理緩存週期,用來對存放的認證或者授權等信息進行緩存管理。
  7. Cryptography: 加密模塊,Shiro提供了一天簡單易用的Api。
  8. Realm:域,充當和具體的安全數據交互的角色。和安全數據進行交互。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章