看博主系列
以下是學(xué)習(xí)筆記:
Authentication:身份認(rèn)證捞镰,驗(yàn)證用戶是不是已經(jīng)擁有相應(yīng)的身份;
Authorization:授權(quán)毙替,即權(quán)限驗(yàn)證岸售,驗(yàn)證某個(gè)已認(rèn)證的用戶是否擁有某個(gè)權(quán)限:也就是判斷用戶能不能做這個(gè)事情;
Session Manager:會(huì)話管理厂画,即用戶登錄一次就是一次會(huì)話凸丸,在沒有退出之前,他所有會(huì)話的信息都保存會(huì)話中袱院;
Cryptography:加密屎慢,保護(hù)數(shù)據(jù)的安全性;
Web Support:Web支持忽洛,可以很容易集成到web環(huán)境腻惠;
Concurrency;shiro支持多線程應(yīng)用的并發(fā)驗(yàn)證欲虚,即在一個(gè)線程中開啟另一個(gè)線程集灌,能把去權(quán)限自動(dòng)傳播過(guò)去;
Testing: 提供測(cè)試支持复哆;
Run As: 允許一個(gè)用戶假裝另一個(gè)用戶的身份訪問(wèn)欣喧;
Remember Me: 記住我,即一次登錄之后梯找,下次登陸再來(lái)的話不用在登陸唆阿;
shiro不會(huì)去維護(hù)用戶,維護(hù)權(quán)限锈锤;這些需要我們自己去設(shè)計(jì)/提供驯鳖;然后通過(guò)相應(yīng)的接口注入給shiro
直接與代碼交互的對(duì)象是Subject闲询,也就是說(shuō)Shiro對(duì)外API的核心是Subject
Subject: 主體,代表當(dāng)前“用戶”臼隔,所有的Subject都綁定到SecurityManager嘹裂,都委托給SecurityManager, SUbject相當(dāng)于門面,而SecurityManager才是實(shí)際的執(zhí)行者摔握;
SecurityManager:我是安全管理器寄狼,所有有安全相關(guān)的操作,都會(huì)交給我來(lái)處理氨淌,我管理著所有的Subject泊愧,我是核心,我負(fù)責(zé)與其他組件進(jìn)行交互盛正,你也可以你把我比作springmvc里面的前端控制器删咱,
Realm: 我叫域,Shiro要從我這里獲取安全數(shù)據(jù)(用戶豪筝,角色痰滋,權(quán)限),也就是說(shuō)SecurityManager要驗(yàn)證身份续崖,需要從我這里獲取相應(yīng)用戶的身份敲街,也需要從我這里獲取權(quán)限,可以把我 看作安全數(shù)據(jù)源严望;
從上面也可以看出多艇,Shiro不提供維護(hù)用戶和權(quán)限,而是用過(guò)Realm讓開發(fā)人員自己注入像吻;
Subject: 主體
SecurityManager:心臟
Authentication:認(rèn)證器
Authorizer: 授權(quán)器
Realm:可以有一個(gè)或者多個(gè)峻黍,安全的實(shí)體數(shù)據(jù)源
SessionManager: Shiro并不僅僅可以用在Web環(huán)境,也可以用在如普通的JavaSE環(huán)境拨匆、EJB等環(huán)境
SessionDao:
CacheManager:緩存控制器 姆涩,放到 緩存中可以提高訪問(wèn)性能;
Cryptography: 密碼模塊涮雷;