《深入理解Spring Cloud与微服务构建》第7章 Spring Boot Security详解

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、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协议、服务器部署防火墙等。

1.2 为什么选择Spring Security

使用Spring Security有很多原因,其中一个重要原因是它对环境的无依赖性、低代码耦合性。将工程重新部署到一个新的服务器上,不需要为Spring Security做什么工作。Spring Security提供了数十个安全模块,模块与模块间的耦合性低,模块之间可以自由组合来实现特定需求的安全功能,具有较高的可定制性。总而言之,Spring Security具有很好的可复用性和可定制性。

在安全方面,有两个主要的领域,一是“认证”,即你是谁;二是“授权”,即你拥有什么权限,Spring Security的主要目标就是在这两个领域。“认证”是认证主体的过程,通常是指可以在应用程序中执行操作的用户、设备或其他系统。“授权”是指决定是否允许已认证的主体执行某一项操作。

安全框架多种多样,那为什么选择Spring Security作为微服务开发的安全框架呢?JavaEE有另一个优秀的安全框架Apache Shiro,Apache Shiro在企业级的项目开发中十分受欢迎,一般使用在单体服务中。但在微服务架构中,目前版本的Apache Shiro是无能为力的。Spring Security来自Spring Resource社区,采用了注解的方式控制权限,熟悉Spring的开发者很容易上手Spring Security。另外一个原因就是Spring Security易于应用于Spring Boot工程,也是易于集成到采用Srping Cloud构建的微服务系统中。

2、Spring Boot Security与Spring Security的关系

在Spring Security框架中,主要包含了两个依赖Jar,分别是spring-security-web依赖和spring-security-config依赖,代码如下:




	org.springframework.security
	spring-security-web
	4.1.0.RELEASE


	org.springframework.security
	spring-security-config
	4.1.0.RELEASE

Spring Boot对Spring Security框架做了封装,仅仅是封装,并没有改动Spring Security这两个包的内容,并加上了Spring Boot的起步依赖的特性。


	org.springframework.boot
	spring-boot-starter-security

进入spring-boot-starter-security的pom文件,可以发现pom文件包含了Spring Security的两个Jar包,并移除了这两个Jar包的apo功能,引入了aop的依赖,另外包含了spring-boot-starter的依赖。由此可见,spring-boot-starter-security是对Spring Security的一个封装。

转载于:https://my.oschina.net/lienson/blog/3033604

你可能感兴趣的:(《深入理解Spring Cloud与微服务构建》第7章 Spring Boot Security详解)