前言
本文主要是記錄自己學(xué)習(xí)Shiro框架的過程以及內(nèi)容心得等,防止自己忘記。
什么是Shiro?
Shiro是一個強(qiáng)大的輕量級Java安全框架,主要負(fù)責(zé)執(zhí)行身份驗(yàn)證,授權(quán),加密和會話管理。
主要架構(gòu)
Shiro主要由三個核心組件構(gòu)成:Subject
,SecurityManager
和Realm
,他們之間的關(guān)系大致如下圖:
Shiro.png
- Subject:指的是當(dāng)前操作的用戶,這里的用戶包括用戶、第三方進(jìn)程等等。即為當(dāng)前與系統(tǒng)交互的對象。Subject代表了當(dāng)前用戶的安全操作,SecurityManager則管理所有用戶的安全操作。
- SecurityManager:即安全管理員,整個框架的核心。Shiro通過SecurityManager來管理內(nèi)部組件實(shí)例,并通過它來提供安全管理的各種服務(wù)。
- Realm:用于Shiro與安全數(shù)據(jù)之間的橋梁。即當(dāng)對用戶在進(jìn)行授權(quán)或認(rèn)證的時候,Shiro會從Realm中查找用戶及其權(quán)限信息等。
Shiro.jpg