shiro特性
Authentication(認(rèn)證):用戶身份識(shí)別把敢,通常被稱為用戶“登錄”
Authorization(授權(quán)):訪問控制。比如某個(gè)用戶是否具有某個(gè)操作的使用權(quán)限喇闸。
Session Management(會(huì)話管理):特定于用戶的會(huì)話管理,甚至在非web 或 EJB 應(yīng)用程序。
Cryptography(加密):在對數(shù)據(jù)源使用加密算法加密的同時(shí)询件,保證易于使用燃乍。
High-Level Overview 高級(jí)概述
在概念層,Shiro 架構(gòu)包含三個(gè)主要的理念:Subject,SecurityManager和 Realm宛琅。下面的圖展示了這些組件如何相互作用刻蟹,我們將在下面依次對其進(jìn)行描述。
Subject:當(dāng)前用戶嘿辟,Subject 可以是一個(gè)人舆瘪,但也可以是第三方服務(wù)片效、守護(hù)進(jìn)程帳戶、時(shí)鐘守護(hù)任務(wù)或者其它–當(dāng)前和軟件交互的任何事件英古。
SecurityManager:管理所有Subject淀衣,SecurityManager 是 Shiro 架構(gòu)的核心,配合內(nèi)部安全組件共同組成安全傘哺呜。
Realms:用于進(jìn)行權(quán)限信息的驗(yàn)證,我們自己實(shí)現(xiàn)箕戳。Realm 本質(zhì)上是一個(gè)特定的安全 DAO:它封裝與數(shù)據(jù)源連接的細(xì)節(jié)某残,得到Shiro 所需的相關(guān)的數(shù)據(jù)。在配置 Shiro 的時(shí)候陵吸,你必須指定至少一個(gè)Realm 來實(shí)現(xiàn)認(rèn)證(authentication)和/或授權(quán)(authorization)玻墅。
我們需要實(shí)現(xiàn)Realms的Authentication 和 Authorization。其中 Authentication 是用來驗(yàn)證用戶身份壮虫,Authorization 是授權(quán)訪問控制澳厢,用于對用戶進(jìn)行的操作授權(quán),證明該用戶是否允許進(jìn)行當(dāng)前操作囚似,如訪問某個(gè)鏈接剩拢,某個(gè)資源文件等。