日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Apache Shiro的运行流程和权限控制方式分析

發(fā)布時(shí)間:2025/1/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Shiro的运行流程和权限控制方式分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Apache Shiro的運(yùn)行流程和權(quán)限控制方式分析

Shiro的架構(gòu)有3個(gè)主要的概念:

Subject

SecurityManager

Realms

下面的關(guān)系圖是關(guān)于這些組件是如何交互的高級(jí)概述。

我們接下來(lái)討論下每一個(gè)概念。

Subjects:Subject實(shí)質(zhì)上是一個(gè)當(dāng)前執(zhí)行用戶的特定的安全“視圖”。鑒于”User”一詞通常意味著一個(gè)人,而一個(gè)Subject可以是一個(gè)人,也可以代表第三方服務(wù),或者其他類似的任何東西–基本上是當(dāng)前正在與軟件進(jìn)行交互的任何東西。所有Subject實(shí)例都被綁定到一個(gè)SecurityManager上,當(dāng)你與一個(gè)Subject交互時(shí),那些交互作用轉(zhuǎn)化為與SecurityManager交互的特定subject的交互作用。

SecurityManager:SucerityManager是Shiro架構(gòu)的心臟,并作為一種“保護(hù)傘”對(duì)象來(lái)協(xié)調(diào)內(nèi)部的安全組件共同構(gòu)成一個(gè)對(duì)象圖。然而,一旦SecurityManager和它的內(nèi)置對(duì)象圖已經(jīng)配置給一個(gè)應(yīng)用程序,那么它單獨(dú)留下來(lái),且應(yīng)用程序開(kāi)發(fā)人員幾乎使用他們所有的時(shí)間來(lái)處理Subject API.當(dāng)你真該與一個(gè)Subject進(jìn)行交互時(shí),實(shí)質(zhì)上是幕后的SecurityManager處理著所有 繁重的Subject安全操作。

Realms:Realms擔(dān)當(dāng)Shiro和你的應(yīng)用程序的安全數(shù)據(jù)之間的“橋梁”或“連接器”。當(dāng)它實(shí)際上與安全相關(guān)的數(shù)據(jù),如用來(lái)執(zhí)行身份驗(yàn)證(登錄)及授權(quán)(訪問(wèn)控制)的用戶賬戶交互時(shí),Shiro從一個(gè)或多個(gè)為應(yīng)用程序配置的Realm中尋找許多這樣的東西。在這個(gè)意義上說(shuō),Realm本質(zhì)上是一個(gè)特定安全的DAO:它封裝了數(shù)據(jù)源的連接詳細(xì)信息,使Shiro所需的相關(guān)的數(shù)據(jù)可用。當(dāng)配置Shiro時(shí),你必須指定至少一個(gè)Realm用來(lái)進(jìn)行身份驗(yàn)證或授權(quán)。SecurityManager可以配置多個(gè)Realms,但至少有一個(gè)是必須的。

Application Code:也就是用戶編寫(xiě)的代碼。
用簡(jiǎn)明扼要的話總結(jié)一下:

Subject就是Shiro管理的用戶;SecurityManager是安全管理器,是Shiro權(quán)限控制核心對(duì)象,在編程時(shí),只需要操作Subject方法,底層會(huì)調(diào)用SecurityManager方法,無(wú)需直接變成操作SecurityManager;Realm是應(yīng)用程序和安全數(shù)據(jù)之間的連接器。 應(yīng)用程序要進(jìn)行權(quán)限控制,就 需要讀取數(shù)據(jù)表中的數(shù)據(jù),也許數(shù)據(jù)并不是存儲(chǔ)在數(shù)據(jù)表中,可能存儲(chǔ)在文件或 網(wǎng)絡(luò)上,但不管怎樣,都是需要讀取數(shù)據(jù)的,那么就一定需要通過(guò)Realms對(duì)象來(lái)讀取這些安全數(shù)據(jù)。以用戶登錄流程為例,應(yīng)用程序首先是去調(diào)用Subject,Subject去調(diào)用SecurtyManager安全管理器 ,SecurtyManager去調(diào)用Realm,Realm再去讀取安全數(shù)據(jù)。

Shiro進(jìn)行權(quán)限控制

主要有四種主要的方式:

在程序中,通過(guò)Subject以編程方式進(jìn)行權(quán)限控制。

通過(guò)配置Filter,實(shí)現(xiàn)URL級(jí)別粗粒度的權(quán)限控制 。

通過(guò)配置代理,基于注解實(shí)現(xiàn)細(xì)粒度的權(quán)限控制。

在頁(yè)面中使用shiro自定義標(biāo)簽實(shí)現(xiàn)頁(yè)面顯示的權(quán)限控制。

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Apache Shiro的运行流程和权限控制方式分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。