Shiro架構剖析

Shiro架構解析

Apache Shiro是一個強大而靈活的開源安全框架。它干凈利落的處理身份認證,授權,企業(yè)會話管理喝加密。Shiro的首要目標是易于使用和理解

Shiro可以做什么?
  1. 驗證用戶身份

  2. 對用戶訪問進行控制

  3. 在任何環(huán)境下使用Session API

  4. 在身份驗證或者訪問控制期間或者在會話的生命周期,對事件作出反應

  5. 聚集一個或者多個用戶安全數(shù)據(jù)的數(shù)據(jù)源,并且作為一個單一的符合用戶視圖

  6. 啟用單點登錄SSO

  7. 為沒有關聯(lián)到登錄的用戶提供Remember Me功能

  8. API易于使用

Shiro特性

Apache Shiro是一個擁有許多功能的綜合性程序安全框架

Shiro應用程序的四大基石

  1. Authentication:有時也簡稱為“登錄”,這是一個證明用戶是他們所說的他們是誰的行為。
  2. Authorization:訪問控制的過程,也就是絕對“誰”去訪問“什么”。
  3. Session Management:管理用戶特定的會話,即使在非 Web 或 EJB 應用程序。
  4. Cryptography:通過使用加密算法保持數(shù)據(jù)安全同時易于使用。
Shiro架構

Shiro的架構主要又3個概念:Subject\SecurityManager\Realms

Subject

Subject可以表示當前正在與軟件交互的用戶。所有Subject實例都被綁定到一個SecurityManager上,當你與一個Subject交互時,那些交互作用轉(zhuǎn)換為與SecurityManager交互的特定Subject交互作用。

SecurityManager

SecurityManager是Shiro架構的核心,用于協(xié)調(diào)內(nèi)部的安全組件。當你正與一個Subject交互的時候,實質(zhì)上是SecurityManager處理所有繁重的Subject操作

Realms

Realms擔當Shiro和你應用程序的安全數(shù)據(jù)之間的橋梁或者連接器,實際上與安全相關的數(shù)據(jù)如用戶身份驗證、授權的用戶賬戶交互時,Shiro從一個或多個為應用程序配置的Realm中尋找這樣的東西。


Shiro架構

Subject

  1. 當前和軟件交互的實體的安全特定視圖(用戶,第三方服務,cron job等等)
SecurityManager
  1. 協(xié)調(diào)Shiro內(nèi)部的安全組件。管理每個應用程序的用戶視圖
Authenticator
  1. Authenticator是一個對執(zhí)行用戶身份驗證登錄的組件。當一個用戶嘗試登陸時候,該邏輯Authenticator執(zhí)行。
    1. Authentication Strategy
      1. 如果不知一個Realm被配置,則AuthenticationStaegy將會協(xié)調(diào)這些Realm來決定身份認證嘗試成功或失敗下的條件
    2. Authorizer
      1. 負責在應用程序中決定用戶訪問控制的組件。
    3. SessionManager
      1. SessionManager負責創(chuàng)建及管理用戶Session的生命周期
    4. SessionDAO
      1. SessionDAO代表SessionManager執(zhí)行Session持久化操作
    5. CacheManager
      1. CacheManager創(chuàng)建并管理其他Shiro組件使用的Cache實例生命周期。
    6. Cryptography
      1. Cryptography 用于加密用戶密碼
    7. Realms
      1. Realms和Shiro和應用程序的安全數(shù)據(jù)之間充當僑聯(lián)或者連接器。在身份驗證的時候Shiro從Realm當中尋找該數(shù)據(jù)。
    8. SecurityManager
      1. SecurityManager用于執(zhí)行安全操作并且管理應用程序的用戶狀態(tài)(Subject)
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容