日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Shiro 和 Spring Security 的比較

作者:Ran959 更新時(shí)間: 2022-09-05 編程語(yǔ)言

1、Shiro

????????Shiro是一個(gè)強(qiáng)大而靈活的開源安全框架,能夠非常清晰的處理認(rèn)證、授權(quán)、管理會(huì)話以及密碼加密。

????????Shiro四大核心功能:Authentication,Authorization,Cryptography,Session Management?

?

?

Shiro三個(gè)核心組件:Subject, SecurityManager 和 Realms.

? ? ? ? Subject:主體,可以看到主體可以是任何可以與應(yīng)用交互的 “用戶”;

? ? ? ? SecurityManager:相當(dāng)于 SpringMVC 中的 DispatcherServlet 或者 Struts2 中的 FilterDispatcher;是 Shiro 的心臟;所有具體的交互都通過 SecurityManager 進(jìn)行控制;它管理著所有 Subject、且負(fù)責(zé)進(jìn)行認(rèn)證和授權(quán)、及會(huì)話、緩存的管理。

? ? ? ? Realm:域,Shiro從Realm獲取安全數(shù)據(jù)(如用戶、角色、權(quán)限),就是說SecurityManager要驗(yàn)證用戶身份,那么它需要從Realm獲取相應(yīng)的用戶進(jìn)行比較以確定用戶身份是否合法;也需要從Realm得到用戶相應(yīng)的角色/權(quán)限進(jìn)行驗(yàn)證用戶是否能進(jìn)行操作;可以把Realm看成DataSource,即安全數(shù)據(jù)源。
?

2、Spring Security

? ? ? ? 是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用了Spring IOC,DI(控制反轉(zhuǎn)Inversion of Control ,DI:Dependency Injection 依賴注入)和AOP(面向切面編程)功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復(fù)代碼的工作。

?Spring Security一般流程:

? ? ? ? ①當(dāng)用戶登錄時(shí),前端將用戶輸入的用戶名、密碼信息傳輸?shù)胶笈_(tái),后臺(tái)用一個(gè)類對(duì)象將其封裝起來(lái),通常使用的是UsernamePasswordAuthenticationToken這個(gè)類。

? ? ? ? ②程序負(fù)責(zé)驗(yàn)證這個(gè)類對(duì)象。驗(yàn)證方法是調(diào)用Service根據(jù)username從數(shù)據(jù)庫(kù)中取用戶信息到實(shí)體類的實(shí)例中,比較兩者的密碼,如果密碼正確就成功登陸,同時(shí)把包含著用戶的用戶名、密碼、所具有的權(quán)限等信息的類對(duì)象放到SecurityContextHolder(安全上下文容器,類似Session)中去。

? ? ? ? ③用戶訪問一個(gè)資源的時(shí)候,首先判斷是否是受限資源。如果是的話還要判斷當(dāng)前是否未登錄,沒有的話就跳到登錄頁(yè)面。

? ? ? ? ④如果用戶已經(jīng)登錄,訪問一個(gè)受限資源的時(shí)候,程序要根據(jù)url去數(shù)據(jù)庫(kù)中取出該資源所對(duì)應(yīng)的所有可以訪問的角色,然后拿著當(dāng)前用戶的所有角色一一對(duì)比,判斷用戶是否可以訪問。

3、 Spring Security和Shiro區(qū)別

相同點(diǎn)

? ? ? ? ①、認(rèn)證功能
? ? ? ? ②、授權(quán)功能
? ? ? ? ③、加密功能
? ? ? ? ④、會(huì)話管理
? ? ? ? ⑤、緩存支持
? ? ? ? ⑥、rememberMe功能

不同點(diǎn):

? ? ? ? 1、Spring Security 基于Spring 開發(fā),項(xiàng)目若使用 Spring 作為基礎(chǔ),配合 Spring Security 做權(quán)限更加方便,而 Shiro 需要和 Spring 進(jìn)行整合開發(fā);
? ? ? ? 2、Spring Security 功能比 Shiro 更加豐富些,例如安全維護(hù)方面;
? ? ? ? 3、Spring Security 社區(qū)資源相對(duì)比 Shiro 更加豐富;
? ? ? ? 4、Shiro 的配置和使用比較簡(jiǎn)單,Spring Security 上手復(fù)雜些;
? ? ? ? 5、Shiro 依賴性低,不需要任何框架和容器,可以獨(dú)立運(yùn)行.Spring Security 依賴Spring容器;
? ? ? ? 6、shiro 不僅僅可以使用在web中,它可以工作在任何應(yīng)用環(huán)境中。在集群會(huì)話時(shí)Shiro最重要的一個(gè)好處或許就是它的會(huì)話是獨(dú)立于容器的。
?

安全框架Shiro和SpringSecurity的比較 - hanease - 博客園?

原文鏈接:https://blog.csdn.net/weixin_67588007/article/details/126692945

欄目分類
最近更新