文档章节

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

Lienson
 Lienson
发布于 2019/04/08 15:23
字数 924
阅读 419
收藏 3

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依赖,代码如下:

<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的一个封装。

© 著作权归作者所有

Lienson
粉丝 17
博文 108
码字总数 97916
作品 0
福州
程序员
私信 提问
加载中

评论(3)

魔法刀客
魔法刀客
这个东西也不好用啊。
Lienson
Lienson 博主

引用来自“msscn”的评论

老铁,这是简介,详解在哪里……
😂 你去看下 《深入理解Spring Cloud与微服务构建》这本书
msscn
msscn
老铁,这是简介,详解在哪里……
Java开发你一定要懂Spring,推荐一份书单送你

对于Java程序员来说,这是一个很好的时代。 在Java近20年的历史中,它经历过很好的时代,也经历过饱受诟病的时代。尽管有很多粗糙的地方,如applet、企业级JavaBean(Enterprise JavaBean,E...

人邮异步社区
03/31
0
0
微服务选择Spring Cloud还是Dubbo?

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 在阿里巴巴的生态中,微服务逐渐成为主要的服务形态,伴随着容器...

异步社区
2018/04/27
0
0
“Spring三剑客”,助你快速从月入过万的程序员到年薪百万的架构师

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 Spring作为Java开发的事实开发框架,一直以来都被开发者誉为杀手级...

异步社区
2018/05/10
0
0
导读篇 Spring Cloud--通往架构师的必修课程

读者朋友们,大家好!我是CSDN博客专家李熠,目前就职于中国石油规划总院,著有《Spring Cloud实战演练一书》。从今天开始,我将发表一系列关于Spring Cloud方面的专题文章,本次专题将分为S...

lynnlovemin
2019/12/10
0
0
史上最简单的 SpringCloud 教程 | 终章

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 https://blog.csdn.net/forezp/article/details/70148833 转载请标明出处...

方志朋
2017/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Elasticsearch:shard 分配感知

osc_lnhxmt4i
11分钟前
16
0
Elasticsearch:分布式计分

osc_rnx2cje5
13分钟前
15
0
vue-element-admin中public中json中的代码没有打包到线上

解决的办法 将public中的文件放到static中,修改对应的路径,就可以解决这个bug了

osc_8hhlaimy
15分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部