SpringSecurity框架簡介及與shiro特點對比
前言
本專欄內容目前已經比較系統(tǒng)了,核心內容也相對完整,本系列文章會根據(jù)Spring Security社區(qū)的發(fā)展逐步的更新內容。請大家多多關注腳本之家~
一、 SpringSecurity 框架簡介
官網(wǎng):https://spring.io/projects/spring-security
Spring Security 是強大的,且容易定制的,基于Spring開發(fā)的實現(xiàn)認證登錄與資源授權的應用安全框架。
SpringSecurity 的核心功能:
- Authentication:身份認證,用戶登陸的驗證(解決你是誰的問題)
- Authorization:訪問授權,授權系統(tǒng)資源的訪問權限(解決你能干什么的問題)
- 安全防護,防止跨站請求,session 攻擊等
二、比較一下shiro與Spring Security
目前在java web應用安全框架中,與Spring Security形成直接競爭的就是shiro,二者在核心功能上幾乎差不多,但從使用的角度各有優(yōu)缺點。筆者認為:沒有最好的,只有最合適的。
2.1.用戶量
Shiro的使用量一直高于spring security。但是從趨勢上來看(2020年10月的百度指數(shù)),Spring Security是在一直上升的,shiro的使用量同比、環(huán)比都進入了下滑期。
2.2.使用的方便程度
通常來說,shiro入門更加容易,使用起來也非常簡單,這也是造成shiro的使用量一直高于Spring Security的主要原因。但是從筆者的角度來看,二者其實都簡單,我說說我的理由:
- 在沒有Spring Boot之前,Spring Security的大部分配置要通過XML實現(xiàn),配置還是還是非常復雜的。但是有了 Spring Boot之后,這一情況已經得到顯著改善。
- Spring Security之所以看上去比shiro更復雜,其實是因為它引入了一些不常用的概念與規(guī)則。大家應該都知道2/8法則,這在Spring Security里面體現(xiàn)的特別明顯,如果你只學Spring Security最重要的那20%,這20%的復雜度和shiro基本是一致的。也就是說,不重要的那80%,恰恰是Spring Security比shiro的“復雜度”。
也就是說,如果有人能幫你把Spring Security最重要的那20%摘出來,二者的入門門檻、復雜度其實是差不太多的。
2.3.社區(qū)支持
Spring Security依托于Spring龐大的社區(qū)支持,這點自不必多說。shiro屬于apache社區(qū),因為它的廣泛使用,文檔也非常的全面。二者從社區(qū)支持來看,幾乎不相上下。
但是從社區(qū)發(fā)展的角度看,Spring Security明顯更占優(yōu)勢,隨著Spring Cloud、Spring Boot、Spring Social的長足進步,這種優(yōu)勢會越來越大。因為Spring Security畢竟是Spring的親兒子,Spring Security未來在于Spring系列框架集成的時候一定會有更好的融合性,前瞻性、兼容性!這也是為什么我們要學Spring Security的主要原因!
2.4.功能豐富性
Spring Security因為它的復雜,所以從功能的豐富性的角度更勝一籌。其中比較典型的如:
- Spring Security默認含有對OAuth2.0的支持,與Spring Social一起使用完成社交媒體登錄也比較方便。shiro在這方面只能靠自己寫代碼實現(xiàn)。
- 還有一種普遍說法:Spring Security在網(wǎng)絡安全的方面下的功夫更多,但是筆者并未有非常直接的感受,有可能出現(xiàn)安全問題的時候才會感到不夠安全的痛。
三、總結
如果你只是想實現(xiàn)一個簡單的web應用,shiro更加的輕量級,學習成本也更低。如果您正在開發(fā)一個分布式的、微服務的、或者與Spring Cloud系列框架深度集成的項目,筆者還是建議您使用Spring Security。
以上就是SpringSecurity框架簡介及與shiro特點對比的詳細內容,更多關于SpringSecurity與shiro框架對比的資料請關注腳本之家其它相關文章!
相關文章
Web開發(fā)/設計人員應當知道的15個網(wǎng)站
建個好網(wǎng)站絕非易事,工欲善其事必先利其器。本文編譯了15個極其有用的網(wǎng)站,任何一位網(wǎng)站開發(fā)者或設計人員都應該收藏起來2011-05-05在IDEA中配置SFTP遠程Linux服務器系統(tǒng)的實現(xiàn)
本文主要介紹了在IDEA中配置SFTP遠程Linux服務器系統(tǒng)的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12關于IE11修改User-agent不再支持document.all等
這篇文章主要介紹了關于IE11修改User-agent不再支持document.all等,需要的朋友可以參考下2015-12-12