Apache Shiro

一劣光、背景
shiro是apache的一個(gè)開源框架袜蚕,是一個(gè)權(quán)限管理的框架,實(shí)現(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容器對(duì)session進(jìn)行管理,shiro也提供了一套session管理方式
  • SessionDao:通過SessionDao管理session數(shù)據(jù)数苫,以下是SessionDao的方法
  • Cache Manager:緩存管理器聪舒,主要對(duì)session和授權(quán)數(shù)據(jù)進(jìn)行緩存,比如將授權(quán)數(shù)據(jù)通過cacheManager進(jìn)行緩存管理虐急,和ehcache整合對(duì)緩存數(shù)據(jù)進(jìn)行管理箱残。

三、核心組件
三個(gè)核心組件:Subject, SecurityManager 和 Realms.

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

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

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

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

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

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

四米愿、提供的功能


功能

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厦凤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子育苟,更是在濱河造成了極大的恐慌较鼓,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件违柏,死亡現(xiàn)場離奇詭異博烂,居然都是意外死亡香椎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門脖母,熙熙樓的掌柜王于貴愁眉苦臉地迎上來士鸥,“玉大人,你說我怎么就攤上這事谆级】窘福” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵肥照,是天一觀的道長脚仔。 經(jīng)常有香客問我,道長舆绎,這世上最難降的妖魔是什么鲤脏? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮吕朵,結(jié)果婚禮上猎醇,老公的妹妹穿的比我還像新娘。我一直安慰自己努溃,他們只是感情好硫嘶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梧税,像睡著了一般沦疾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上第队,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天哮塞,我揣著相機(jī)與錄音,去河邊找鬼凳谦。 笑死忆畅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晾蜘。 我是一名探鬼主播券躁,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼化焕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纷捞,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤橙弱,失蹤者是張志新(化名)和其女友劉穎顿膨,沒想到半個(gè)月后萤皂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年板惑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橄镜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冯乘,死狀恐怖洽胶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裆馒,我是刑警寧澤姊氓,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站喷好,受9級(jí)特大地震影響翔横,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梗搅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一禾唁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧无切,春花似錦荡短、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洼哎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沼本,已是汗流浹背噩峦。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抽兆,地道東北人识补。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像辫红,于是被迫代替她去往敵國和親凭涂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

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