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

學無先后,達者為師

網站首頁 編程語言 正文

Shiro 和 Spring Security 的比較

作者:Ran959 更新時間: 2022-09-05 編程語言

1、Shiro

????????Shiro是一個強大而靈活的開源安全框架,能夠非常清晰的處理認證、授權、管理會話以及密碼加密。

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

?

?

Shiro三個核心組件:Subject, SecurityManager 和 Realms.

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

? ? ? ? SecurityManager:相當于 SpringMVC 中的 DispatcherServlet 或者 Struts2 中的 FilterDispatcher;是 Shiro 的心臟;所有具體的交互都通過 SecurityManager 進行控制;它管理著所有 Subject、且負責進行認證和授權、及會話、緩存的管理。

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

2、Spring Security

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

?Spring Security一般流程:

? ? ? ? ①當用戶登錄時,前端將用戶輸入的用戶名、密碼信息傳輸到后臺,后臺用一個類對象將其封裝起來,通常使用的是UsernamePasswordAuthenticationToken這個類。

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

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

? ? ? ? ④如果用戶已經登錄,訪問一個受限資源的時候,程序要根據url去數據庫中取出該資源所對應的所有可以訪問的角色,然后拿著當前用戶的所有角色一一對比,判斷用戶是否可以訪問。

3、 Spring Security和Shiro區別

相同點

? ? ? ? ①、認證功能
? ? ? ? ②、授權功能
? ? ? ? ③、加密功能
? ? ? ? ④、會話管理
? ? ? ? ⑤、緩存支持
? ? ? ? ⑥、rememberMe功能

不同點:

? ? ? ? 1、Spring Security 基于Spring 開發,項目若使用 Spring 作為基礎,配合 Spring Security 做權限更加方便,而 Shiro 需要和 Spring 進行整合開發;
? ? ? ? 2、Spring Security 功能比 Shiro 更加豐富些,例如安全維護方面;
? ? ? ? 3、Spring Security 社區資源相對比 Shiro 更加豐富;
? ? ? ? 4、Shiro 的配置和使用比較簡單,Spring Security 上手復雜些;
? ? ? ? 5、Shiro 依賴性低,不需要任何框架和容器,可以獨立運行.Spring Security 依賴Spring容器;
? ? ? ? 6、shiro 不僅僅可以使用在web中,它可以工作在任何應用環境中。在集群會話時Shiro最重要的一個好處或許就是它的會話是獨立于容器的。
?

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

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

欄目分類
最近更新