Apache Shiro

一、背景
shiro是apache的一個開源框架,是一個權(quán)限管理的框架,實現(xiàn) 用戶認(rèn)證、用戶授權(quán)。

二、架構(gòu)


架構(gòu)圖
  • Authenticator:認(rèn)證器,主體進(jìn)行認(rèn)證最終通過authenticator進(jìn)行
  • Authorizer:授權(quán)器,主體進(jìn)行授權(quán)最終通過authorizer進(jìn)行sessionManager:web應(yīng)用中一般是用web容器對session進(jìn)行管理,shiro也提供了一套session管理方式
  • SessionDao:通過SessionDao管理session數(shù)據(jù),以下是SessionDao的方法
  • Cache Manager:緩存管理器,主要對session和授權(quán)數(shù)據(jù)進(jìn)行緩存,比如將授權(quán)數(shù)據(jù)通過cacheManager進(jìn)行緩存管理,和ehcache整合對緩存數(shù)據(jù)進(jìn)行管理。

三、核心組件
三個核心組件:Subject, SecurityManager 和 Realms.

Subject:即"當(dāng)前操作用戶"。但是,在Shiro中,Subject這一概念并不僅僅指人,也可以是第三方進(jìn)程、后臺帳戶(Daemon Account)或其他類似事物。它僅僅意味著"當(dāng)前跟軟件交互的東西"。但考慮到大多數(shù)目的和用途,你可以把它認(rèn)為是Shiro的"用戶"概念。

Subject代表了當(dāng)前用戶的安全操作,SecurityManager則管理所有用戶的安全操作。

SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通過SecurityManager來管理內(nèi)部組件實例,并通過它來提供安全管理的各種服務(wù)。

Realm: Realm充當(dāng)了Shiro與應(yīng)用安全數(shù)據(jù)間的"橋梁"或者"連接器"。也就是說,當(dāng)對用戶執(zhí)行認(rèn)證(登錄)和授權(quán)(訪問控制)驗證時,Shiro會從應(yīng)用配置的Realm中查找用戶及其權(quán)限信息。

從這個意義上講,Realm實質(zhì)上是一個安全相關(guān)的DAO:它封裝了數(shù)據(jù)源的連接細(xì)節(jié),并在需要時將相關(guān)數(shù)據(jù)提供給Shiro。當(dāng)配置Shiro時,你必須至少指定一個Realm,用于認(rèn)證和(或)授權(quán)。配置多個Realm是可以的,但是至少需要一個。

Shiro內(nèi)置了可以連接大量安全數(shù)據(jù)源(又名目錄)的Realm,如LDAP、關(guān)系數(shù)據(jù)庫(JDBC)、類似INI的文本配置資源以及屬性文件等。如果缺省的Realm不能滿足需求,你還可以插入代表自定義數(shù)據(jù)源的自己的Realm實現(xiàn)。

四、提供的功能


功能

Authentication:用戶認(rèn)證(登錄)
Authorization:權(quán)限控制
Session Management:會話管理
Cryptography:數(shù)據(jù)加密
Web Support:支持web的API
Caching:緩存
Concurrency:支持多線程應(yīng)用程序
Testing:測試的支持
“Run As”:假設(shè)一個用戶為另一個用戶的身份
“Remember Me”:在Session中保存用戶身份

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 構(gòu)建一個互聯(lián)網(wǎng)應(yīng)用,權(quán)限校驗管理是很重要的安全措施,這其中主要包含: 認(rèn)證 - 用戶身份識別,即登錄 授權(quán) - 訪...
    zhuke閱讀 3,626評論 0 30
  • 目錄 Apache Shiro架構(gòu)詳解... 1 1、高層視圖... 2 2、詳細(xì)架構(gòu)... 4 3、Shrio設(shè)...
    塵_竹閱讀 3,417評論 0 4
  • Apache Shiro Apache Shiro 是一個強(qiáng)大而靈活的開源安全框架,它干凈利落地處理身份認(rèn)證,授權(quán)...
    羅志贇閱讀 3,329評論 1 49
  • 一、Apache Shiro的架構(gòu) 1.shiro基本模塊 Subject:主體,可以看到主體可以是任何可以與應(yīng)用...
    Gothrow閱讀 18,908評論 5 8
  • 多次總結(jié)過自己缺點(diǎn),結(jié)合自己的經(jīng)歷,每次都是歸結(jié)到老生常談的問題——記憶力欠缺的問題。記憶力差表現(xiàn)為存量不足,從而...
    Gloria_2015閱讀 410評論 0 3

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