国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Shiro

2019-11-14 22:01:44
字體:
來源:轉載
供稿:網友
Shiro - 簡介

Shiro是強大、精簡的java安全框架。

在認證、授權、加密和會話管理等方面提供直觀而又全面的解決方案。

Shiro的一些特性:

  • 支持基于各種數據源的認證與授權,可以進行角色或者更細粒度的授權,而且Exception的層次非常豐富。
  • 支持緩存以提高應用性能。
  • 環境無關的session訪問,session管理更趨向于業務,支持SSO、集群、分布式等場景。
  • 用更簡單的方式對數據進行加密。
  • 精簡的web安全支持。安全訪問URL和資源、自動處理登錄登出、remember me等。
  • 較少的依賴。通常只需要slf4j和common-beanutils什么的。

即:security framework = authentication+authorization+cryptography+session management

wKiom1N7bBOTRPzSAADfpjXEj1k868.jpg

解釋一下圖中詞匯:

  • Authentication:認證,簡單理解為登錄,證明自己是誰。
  • Authorization:授權,即誰是否有進行某操作的權限。
  • Session Management:用戶會話管理,它是環境無關的,在任何應用都可以。
  • Cryptography:使用加密算法對數據進行加密,方法非常簡便。
  • Web Support:對web應用提供非常簡便的API。
  • Caching:緩存保證安全操作快速有效。
  • Concurrency:Shiro支持對多線程應用。
  • Testing:即使做了安全設置也不妨礙進行單元或者集成測試。
  • “Run As”:權限偽裝。
  • Remember Me:登錄后記住權限。

簡單而言,Shiro的架構包括3種概念:

wKioL1N8cYnA3yKgAABzz5gaPa0551.jpg

下面是Shiro的詳細架構圖:

wKioL1N8dWfiHUoQAAKIt6sv7RY861.jpg

  • Subject:用于描述當前執行各種操作的用戶。雖然現實生活中"用戶"通常是人類,但程序中他也可以是第三方的一些服務,比如爬蟲或者定時任務等任何與程序交互的東西。Subject實例綁定于SecurityManager,當我們操作Subject時,其實質是Subject與SecurityManager的交互,Subject是訪問SecurityManager的門面。
  • SecurityManager:Shiro的核心,'umbrella'object,“罩著”所有安全組件,以讓他們順利執行。同時他也管理著每一個Subject,以針對每一個Subject進行安全操作。
  • Authenticator:主要負責認證的組件。登錄邏輯由Authenticator執行,從Realm中獲取相關數據以確認用戶身份。如果存在多個Realm,則會用到Authentication Strategy。比如有一個Realm通過而其他未通過時如何處理,這就是Authentication Startegy的工作。
  • Authorizer:負責用戶的權限,通過安全數據決定用戶是否有權限執行某操作。
  • SessionManager:負責會話的生命周期以提供健壯的環境無關的會話體驗,環境無關是Shiro的一大賣點。SessionDao則是用來做會話的持久化共組的,可以使用任何數據源。
  • CacheManager:用于管理緩存生命周期,認證、權限、會話等信息都可以被緩存起來。
  • Cryptography:用于方便加解密。
  • Realms:是連接Shiro和數據的橋梁。比如需要用到一些安全相關的數據去進行比如認證或者授權等動作時就會用到Realm。或者可以將Realm理解為安全相關的DAO,用于封裝操作安全相關數據的實現細節。Realm可以有很多,但至少一個。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵德县| 丘北县| 万宁市| 噶尔县| 安徽省| 凤冈县| 鄂伦春自治旗| 礼泉县| 万年县| 盐边县| 游戏| 新竹市| 肇东市| 清苑县| 桃园县| 诸暨市| 临江市| 错那县| 莆田市| 商洛市| 连山| 开封市| 买车| 穆棱市| 永仁县| 金塔县| 监利县| 察雅县| 南宫市| 专栏| 永顺县| 安仁县| 玉山县| 灌云县| 安平县| 尼木县| 岳池县| 鲁甸县| 亚东县| 蓬安县| 怀化市|