《深刻理解Spring Cloud與微服務構建》第7章 Spring Boot Security詳解

一、Spring Security簡介

1.1 什麼是Spring Security

Spring Security是Spring Resource社區的一個安全組件,Spring Security爲JavaEE企業級開發提供了全面的安全防禦。安全防禦是一個不斷變化的目標,Spring Security經過版本不斷迭代來實現這一目標。Spring Security採用「安全層」的概念,使每一層都儘量安全,連續的安全層能夠達到全面的防禦。Spring Security能夠在Controller層、Service層、DAO層等以加註解的方式來保護應用程序的安全。Spring Security提供了細粒度的權限控制,能夠精細到每個API接口、每個業務的方法,或者每個操做數據庫的DAO層的方法。Spring Security提供的是應用程序層的安全解決方案,一個系統的安全還須要考慮傳輸層和系統層的安全,例如採用Https協議、服務器部署防火牆等。web

1.2 爲何選擇Spring Security

使用Spring Security有不少緣由,其中一個重要緣由是它對環境的無依賴性、低代碼耦合性。將工程從新部署到一個新的服務器上,不須要爲Spring Security作什麼工做。Spring Security提供了數十個安全模塊,模塊與模塊間的耦合性低,模塊之間能夠自由組合來實現特定需求的安全功能,具備較高的可定製性。總而言之,Spring Security具備很好的可複用性和可定製性。spring

在安全方面,有兩個主要的領域,一是「認證」,即你是誰;二是「受權」,即你擁有什麼權限,Spring Security的主要目標就是在這兩個領域。「認證」是認證主體的過程,一般是指能夠在應用程序中執行操做的用戶、設備或其餘系統。「受權」是指決定是否容許已認證的主體執行某一項操做。數據庫

安全框架多種多樣,那爲何選擇Spring Security做爲微服務開發的安全框架呢?JavaEE有另外一個優秀的安全框架Apache Shiro,Apache Shiro在企業級的項目開發中十分受歡迎,通常使用在單體服務中。但在微服務架構中,目前版本的Apache Shiro是無能爲力的。Spring Security來自Spring Resource社區,採用了註解的方式控制權限,熟悉Spring的開發者很容易上手Spring Security。另一個緣由就是Spring Security易於應用於Spring Boot工程,也是易於集成到採用Srping Cloud構建的微服務系統中。安全

二、Spring Boot Security與Spring Security的關係

在Spring Security框架中,主要包含了兩個依賴Jar,分別是spring-security-web依賴和spring-security-config依賴,代碼以下:服務器

<dependencies>
<!-- ... other dependency elements ... -->
<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-web</artifactId>
	<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-config</artifactId>
	<version>4.1.0.RELEASE</version>
</dependency>
</dependencies>

Spring Boot對Spring Security框架作了封裝,僅僅是封裝,並無改動Spring Security這兩個包的內容,並加上了Spring Boot的起步依賴的特性。架構

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

進入spring-boot-starter-security的pom文件,能夠發現pom文件包含了Spring Security的兩個Jar包,並移除了這兩個Jar包的apo功能,引入了aop的依賴,另外包含了spring-boot-starter的依賴。因而可知,spring-boot-starter-security是對Spring Security的一個封裝。框架

相關文章
相關標籤/搜索