Apache Shiro是一個(gè)強(qiáng)大且易用的Java安全框架,執(zhí)行身份驗(yàn)證、授權(quán)、密碼和會(huì)話(huà)管理。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應(yīng)用程序,從最小的移動(dòng)應(yīng)用程序到最大的網(wǎng)絡(luò)和企業(yè)應(yīng)用程序。
三個(gè)核心組件:Subject, SecurityManager 和 Realms.
Subject:即“當(dāng)前操作用戶(hù)”。但是,在Shiro中,Subject這一概念并不僅僅指人,也可以是第三方進(jìn)程、后臺(tái)帳戶(hù)(Daemon Account)或其他類(lèi)似事物。它僅僅意味著“當(dāng)前跟軟件交互的東西”。
Subject代表了當(dāng)前用戶(hù)的安全操作,SecurityManager則管理所有用戶(hù)的安全操作。
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通過(guò)SecurityManager來(lái)管理內(nèi)部組件實(shí)例,并通過(guò)它來(lái)提供安全管理的各種服務(wù)。
Realm: Realm充當(dāng)了Shiro與應(yīng)用安全數(shù)據(jù)間的“橋梁”或者“連接器”。也就是說(shuō),當(dāng)對(duì)用戶(hù)執(zhí)行認(rèn)證(登錄)和授權(quán)(訪(fǎng)問(wèn)控制)驗(yàn)證時(shí),Shiro會(huì)從應(yīng)用配置的Realm中查找用戶(hù)及其權(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ù)庫(kù)(JDBC)、類(lèi)似INI的文本配置資源以及屬性文件等。如果缺省的Realm不能滿(mǎn)足需求,你還可以插入代表自定義數(shù)據(jù)源的自己的Realm實(shí)現(xiàn)。
Shiro框架培訓(xùn)大綱
-
Shiro簡(jiǎn)介和基礎(chǔ)應(yīng)用
-
ini文件和自定義realm
-
使用mysql數(shù)據(jù)源
-
servlet結(jié)合Shiro實(shí)現(xiàn)權(quán)限驗(yàn)證
-
springMVC結(jié)合Shiro實(shí)現(xiàn)權(quán)限驗(yàn)證
-
使用注解實(shí)現(xiàn)權(quán)限驗(yàn)證和管理后臺(tái)搭建
-
自定義過(guò)濾規(guī)則
-
動(dòng)態(tài)添加驗(yàn)證規(guī)則
-
登陸功能
-
角色管理
-
用戶(hù)管理