web應用安全框架選型:Spring Security與Apache Shiro

file

1、 SpringSecurity 框架簡介

官網:https://projects.spring.io/sp... java

源代碼: https://github.com/spring-projects/spring-security/git

Spring Security 是強大的,且容易定製的,基於Spring開發的實現認證登陸與資源受權的應用安全框架。github

SpringSecurity 的核心功能:web

  • Authentication:認證,用戶登錄的驗證(解決你是誰的問題)
  • Authorization:受權,受權系統資源的訪問權限(解決你能幹什麼的問題)
  • 安全防禦,防止跨站請求,session 攻擊等

2、比較一下shiro與Spring Security

目前在java web應用安全框架中,與Spring Security造成直接競爭的就是shiro,兩者在覈心功能上幾乎差很少,但從使用的角度各有優缺點。筆者認爲:沒有最好的,只有最合適的。spring

2.1 用戶量

從使用狀況上看,兩者都在逐步提升使用量。shiro的使用量一直高於spring security.
apache

2.2.使用的方便程度

一般來講,shiro入門更加容易,使用起來也很是簡單,這也是形成shiro的使用量一直高於Spring Security的主要緣由。可是從筆者的角度來看,兩者其實都簡單,我說說個人理由:安全

  • 在沒有Spring Boot以前,Spring Security的大部分配置要經過XML實現,配置仍是仍是很是複雜的。可是有了 Spring Boot以後,這一狀況已經獲得顯著改善。
  • Spring Security之因此看上去比shiro更復雜,實際上是由於它引入了一些不經常使用的概念與規則。你們應該都知道2/8法則,這在Spring Security裏面體現的特別明顯,若是你只學Spring Security最重要的那20%,這20%的複雜度和shiro基本是一致的。也就是說,不重要的那80%,偏偏是Spring Security比shiro的「複雜度」。

也就是說,若是有人能幫你把Spring Security最重要的那20%摘出來,兩者的入門門檻、複雜度實際上是差不太多的。springboot

2.3.社區支持

Spring Security依託於Spring龐大的社區支持,這點自沒必要多說。shiro屬於apache社區,由於它的普遍使用,文檔也很是的全面。兩者從社區支持來看,幾乎不相上下。網絡

可是從社區發展的角度看,Spring Security明顯更佔優點,隨着Spring Cloud、Spring Boot、Spring Social的長足進步,這種優點會愈來愈大。由於Spring Security畢竟是Spring的親兒子,Spring Security將來在於Spring系列框架集成的時候必定會有更好的融合性,前瞻性、兼容性!這也是爲何咱們要學Spring Security的主要緣由!session

2.4.功能豐富性

Spring Security由於它的複雜,因此從功能的豐富性的角度更勝一籌。其中比較典型的如:

  • Spring Security默認含有對OAuth2.0的支持,與Spring Social一塊兒使用完成社交媒體登陸也比較方便。shiro在這方面只能靠本身寫代碼實現。
  • 還有一種廣泛說法:Spring Security在網絡安全的方面下的功夫更多,可是筆者並未有很是直接的感覺,有可能出現安全問題的時候纔會感到不夠安全的痛。

3、總結

若是你只是想實現一個簡單的web應用,shiro更加的輕量級,學習成本也更低。若是您正在開發一個分佈式的、微服務的、或者與Spring Cloud系列框架深度集成的項目,筆者仍是建議您使用Spring Security。

期待您的關注

相關文章
相關標籤/搜索