前言
在之前介紹過了Shiro之后,有好多粉絲問SpringSecurity在Spring Boot中怎么集成。這個系列我們就和大家分享下有關這方面的知識。
本節大綱
一、什么是SpringSecurity?
二、常用安全框架
一、什么是Spring Security?
SpringSecurity是基於Spring AOP和Servlet過濾器的安全框架。它提供全面的安全性解決方案,同時在Web 請求級和方法調用級處理身份確認和授權。在 Spring Framework 基礎上,Spring Security 充分利用了依賴注入(DI,Dependency Injection)和面向切面編程(AOP)功能,為應用系統提供聲明式的安全訪問控制功能,減少了為企業系統安全控制編寫大量重復代碼的工作。它是一個輕量級的安全框架,它確保基於Spring的應用程序提供身份驗證和授權支持。它與Spring MVC有很好地集成,並配備了流行的安全算法實現捆綁在一起。安全主要包括兩個操作“認證”與“驗證”(有時候也會叫做權限控制)。“認證”是為用戶建立一個其聲明的角色的過程,這個角色可以一個用戶、一個設備或者一個系統。“驗證”指的是一個用戶在你的應用中能夠執行某個操作。在到達授權判斷之前,角色已經在身份認證過程中建立了。
我們簡單來理解一下上面這段話:
第一:什么是Spring Security ?
Spring Security是一個安全框架。
第二:Spring Security核心功能?
(1)認證(你是誰,用戶/設備/系統)
(2)驗證(你能干什么,也叫權限控制/授權,允許執行的操作)
(3)攻擊防護(防止偽造身份)
第三:Spring Security原理技術
Filter、Servlet、Spring DI、SpringAOP
二、常用安全框架
目前常用的安全框架主要是Spring Security和Apache Shiro,它們的區別是什么呢?
2.1 相同點
(1)認證功能
(2)授權功能
(3)加密功能
(4)會話功能
(5)緩存支持
(6)remeberMe功能
……
2.2 不同點(Spring Security PK Apache Shiro)
優點:
(1)Spring Security基於Spring開發,項目中如果使用Spring作為基礎,配合Spring Security做權限更加方便。而Shiro需要和Spring進行整合。
(2)Spring Security功能比Shiro更加豐富,例如安全防護方面。
(3)Spring Security社區資源相對比Shiro更加豐富。
(4)如果使用的是Spring Boot,Spring Cloud的話,三者可以無縫集成。
缺點:
(1)Shiro的配置和使用比較簡單,Spring Security上手復雜些。
(2)Shiro依賴性低,不需要任何框架和容器,可以獨立運行,而Spring Security依賴Spring容器。
企業里選擇哪個安全框架,是因人而異,因團隊而異,擅長哪個選擇哪個,大部分的業務場景,兩個框架都是可以滿足需求的。
本節就到這里,下節我們通過編碼對於Spring Security有一個基本的認識。