- 内容简介
- 前言
- 第 1 章 第一个 Spring Boot 项目
- 第 2 章 集成 MySQL 数据库
- 第 3 章 集成 Spring Data JPA
- 第 4 章 使用 Thymeleaf 模板引擎
- 第 5 章 Spring Boot 事务支持
- 第 6 章 使用过滤器和监听器
- 第 7 章 集成 Redis 缓存
- 第 8 章 集成 Log4j 日志
- 8.3 使用 Log4j 记录日志
- 第 9 章 Quartz 定时器和发送 Email
- 第 10 章 集成 MyBatis
- 第 11 章 异步消息与异步调用
- 第 12 章 全局异常处理与 Retry 重试
- 第 13 章 集成 MongoDB 数据库
- 第 14 章 集成 Spring Security
- 第 15 章 Spring Boot 应用监控
- 第 16 章 集成 Dubbo 和 Zookeeper
- 第 17 章 多环境配置与部署
- 第 18 章 Spring Boot 原理解析
- 参考文献
14.1 Spring Security 介绍

在 Web 应用开发中,安全是非常重要的。因为安全属于应用的非功能性需求,大部分企业会把更多资源投入应用开发中,所以应用安全很容易被忽略。安全应该在应用开发的初期就考虑进来,如果在应用开发的后期才考虑安全问题,就可能陷入两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来。
市场上开源的安全框架很多,比如 Apache Shiro 安全框架、Spring Security 安全框架等。虽然 Spring Security 安全框架比 Apache Shiro 安全框架“重”,但是如果我们用心去了解 Spring Security 安全框架,就会发现其实 Spring Security 安全框架是非常优秀的。本书选择在 Spring Boot 中集成 Spring Security 安全框架。
Spring Security 安全框架除了包含基本的认证和授权功能外,还提供了加密解密、统一登录等一系列支持。Spring Security 安全框架简单的实现原理如图 14-1 所示。
图 14-1 Spring Security 简单原理
在图 14-1 中,Accessor 是资源的访问者,在访问过程中,需要经过一系列拦截器 Interceptor 的拦截,比如 FilterSecurityInterceptor、MethodSecurityInterceptor、AspectJSecurityInterceptor 等。这些拦截器是统一的抽象类 AbstractSecurityInterceptor 的具体实现。“控制机构”AccessDecisionManager 决定谁可以访问资源,而“身份认证机构”AuthenticationManager 就是定义那个“谁”,解决的是访问者身份认证问题,只有确定注册类,才可以给予授权访问。“控制机构”AccessDecisionManager 和“身份认证机构”AuthenticationManager 负责制订规则,AbstractSecurityInterceptor 负责执行。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论