Redis和Shiro簡(jiǎn)介

Redis 簡(jiǎn)介
Redis 是完全開源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。

Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):

Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。
Redis不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

Shiro是什么

Shiro是一個(gè)Java平臺(tái)的開源權(quán)限框架,用于認(rèn)證和訪問(wèn)授權(quán)。具體來(lái)說(shuō),滿足對(duì)如下元素的支持:

用戶,角色,權(quán)限(僅僅是操作權(quán)限,數(shù)據(jù)權(quán)限必須與業(yè)務(wù)需求緊密結(jié)合),資源(url)。
用戶分配角色,角色定義權(quán)限。
訪問(wèn)授權(quán)時(shí)支持角色或者權(quán)限,并且支持多級(jí)的權(quán)限定義。
Q:對(duì)組的支持?
A:shiro默認(rèn)不支持對(duì)組設(shè)置權(quán)限。

Q:是否可以滿足對(duì)組進(jìn)行角色分配的需求?
A:擴(kuò)展Realm,可以支持對(duì)組進(jìn)行分配角色,其實(shí)就是給該組下的所有用戶分配權(quán)限。

Q:對(duì)數(shù)據(jù)權(quán)限的支持? 在業(yè)務(wù)系統(tǒng)中定義?
A:shiro僅僅實(shí)現(xiàn)對(duì)操作權(quán)限的控制,用于在前端控制元素隱藏或者顯示,以及對(duì)資源訪問(wèn)權(quán)限進(jìn)行檢查。數(shù)據(jù)權(quán)限與具體的業(yè)務(wù)需求緊密關(guān)聯(lián),shiro本身無(wú)法實(shí)現(xiàn)對(duì)數(shù)據(jù)權(quán)限的控制。

Q:動(dòng)態(tài)權(quán)限分配?
A:擴(kuò)展org.apache.shiro.realm.Realm,支持動(dòng)態(tài)權(quán)限分配。

Q:與Spring集成?
A:可以支持與Spring集成,shiro還支持jsp標(biāo)簽。

在shiro架構(gòu)中,有3個(gè)最主要的組件:Subject,SecurityManager,Realm。
Subject本質(zhì)上就是當(dāng)前訪問(wèn)用戶的抽象描述。
SecurityManager是Shiro架構(gòu)中最核心的組件,通過(guò)它可以協(xié)調(diào)其他組件完成用戶認(rèn)證和授權(quán)。實(shí)際上,SecurityManager就是Shiro框架的控制器。
Realm定義了訪問(wèn)數(shù)據(jù)的方式,用來(lái)連接不同的數(shù)據(jù)源,如:LDAP,關(guān)系數(shù)據(jù)庫(kù),配置文件等等。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容