第 1篇 Spring Security概述
第 1章 直面Spring Security\t3
1.1 Spring Security概览\t3
1.2 Spring Security功能体系\t4
1.2.1 Spring Security与单体应用\t5
1.2.2 Spring Security与微服务架构\t7
1.2.3 Spring Security与响应式系统\t8
1.3 Spring Security配置体系\t9
1.4 全书内容架构\t10
1.5 本章小结\t11
第 2篇 认证和授权
第 2章 用户认证\t15
2.1 HTTP基础认证和表单登录认证\t15
2.1.1 HTTP基础认证\t16
2.1.2 表单登录认证\t17
2.2 配置Spring Security用户认证体系\t18
2.2.1 使用基于内存的用户信息存储方案\t19
2.2.2 使用基于数据库的用户信息存储方案\t19
2.3 Spring Security中的用户对象和认证对象\t21
2.3.1 Spring Security中的用户对象\t21
2.3.2 Spring Security中的认证对象\t24
2.4 实现定制化用户认证方案\t27
2.4.1 扩展UserDetails\t27
2.4.2 扩展UserDetailsService\t28
2.4.3 扩展AuthenticationProvider\t29
2.5 本章小结\t31
第3章 访问授权\t33
3.1 Spring Security中的权限和角色\t33
3.1.1 基于权限进行访问控制\t34
3.1.2 基于角色进行访问控制\t35
3.2 使用配置方法控制访问权限\t37
3.2.1 MVC匹配器\t38
3.2.2 Ant匹配器\t39
3.2.3 正则表达式匹配器\t40
3.3 Spring Security授权流程\t41
3.3.1 拦截请求\t43
3.3.2 获取权限配置\t43
3.3.3 执行授权决策\t46
3.4 本章小结\t49
第4章 密码安全\t51
4.1 密码编码器\t51
4.1.1 PasswordEncoder抽象\t52
4.1.2 自定义PasswordEncoder\t54
4.1.3 代理式DelegatingPasswordEncoder\t55
4.2 Spring Security加密模块\t59
4.3 本章小结\t60
第5章 案例实战:实现自定义用户认证体系\t61
5.1 案例设计和初始化\t61
5.1.1 案例设计\t61
5.1.2 系统初始化\t62
5.2 实现自定义用户认证\t65
5.2.1 实现用户管理\t65
5.2.2 实现认证流程\t67
5.2.3 实现安全配置\t68
5.3 本章小结\t70
第3篇 扩展插件
第6章 过滤器\t73
6.1 Spring Security过滤器架构\t73
6.1.1 Servlet与管道-过滤器模式\t73
6.1.2 Spring Security中的过滤器链\t74
6.2 实现自定义过滤器\t75
6.2.1 开发过滤器\t75
6.2.2 配置过滤器\t77
6.3 Spring Security中的过滤器\t78
6.4 本章小结\t80
第7章 CSRF和CORS\t81
7.1 使用Spring Security提供CSRF保护\t81
7.1.1 CSRF基本概念\t81
7.1.2 使用CsrfFilter\t82
7.1.3 定制化CSRF保护\t85
7.2 使用Spring Security实现CORS\t87
7.2.1 CORS基本概念\t87
7.2.2 使用CorsFilter\t88
7.2.3 使用@CrossOrigin注解\t88
7.3 本章小结\t89
第8章 全局方法安全\t91
8.1 全局方法安全机制\t91
8.2 使用注解实现方法级别授权\t92
8.2.1 @PreAuthorize注解\t92
8.2.2 @PostAuthorize注解\t94
8.3 使用注解实现方法级别过滤\t95
8.3.1 @PreFilter注解\t95
8.3.2 @PostFilter注解\t96
8.4 本章小结\t97
第9章 案例实战:实现多因素认证机制\t99
9.1 案例设计和初始化\t99
9.1.1 多因素认证设计\t99
9.1.2 系统初始化\t100
9.2 实现多因素认证机制\t101
9.2.1 实现认证服务\t101
9.2.2 实现前端服务\t103
9.3 本章小结\t109
第4篇 微服务安全
第 10章 OAuth2协议\t113
10.1 OAuth2协议详解\t113
10.1.1 OAuth2协议的应用场景\t113
10.1.2 OAuth2协议的角色\t115
10.1.3 OAuth2协议的令牌\t116
10.1.4 OAuth2协议的授权模式\t117
10.2 OAuth2授权服务器\t118
10.2.1 构建OAuth2授权服务器\t118
10.2.2 设置客户端和用户认证信息\t119
10.2.3 生成令牌\t123
10.3 本章小结\t124
第 11章 OAuth2协议与微服务架构\t125
11.1 集成OAuth2协议与微服务架构\t125
11.1.1 微服务架构技术体系\t125
11.1.2 OAuth2协议与微服务架构集成方式\t129
11.2 在微服务中嵌入访问授权控制\t132
11.2.1 用户层级的权限访问控制\t132
11.2.2 用户+角色层级的权限访问控制\t133
11.2.3 用户+角色+请求方法层级的权限访问控制\t133
11.3 在微服务中传播令牌\t134
11.4 本章小结\t135
第 12章 JWT概述\t137
12.1 JWT\t137
12.1.1 JWT的基本结构\t137
12.1.2 JWT的优势\t138
12.2 集成OAuth2协议与JWT\t138
12.3 在微服务中使用JWT\t141
12.3.1 从HTTP请求中获取JWT令牌\t142
12.3.2 以线程安全的方式存储JWT令牌\t142
12.3.3 将JWT令牌嵌入RestTemplate请求中\t143
12.4 本章小结\t144
第 13章 单点登录\t145
13.1 单点登录架构\t145
13.1.1 单点登录与OAuth2协议\t145
13.1.2 单点登录的工作流程\t146
13.2 实现SSO服务器端\t147
13.2.1 配置基础认证和授权信息\t147
13.2.2 配置OAuth2授权服务器\t148
13.3 实现SSO客户端\t150
13.4 本章小结\t152
第 14章 案例实战:构建微服务安全架构\t153
14.1 案例设计和初始化\t153
14.1.1 案例业务模型\t153
14.1.2 案例设计\t155
14.2 构建微服务基础设施组件\t157
14.2.1 注册中心\t157
14.2.2 配置中心\t159
14.2.3 服务网关\t162
14.3 实现业务服务\t165
14.3.1 集成微服务基础组件\t165
14.3.2 实现业务流程\t170
14.4 集成和扩展JWT\t172
14.4.1 集成JWT\t172
14.4.2 扩展JWT\t173
14.5 本章小结\t176
第5篇 响应式安全
第 15章 响应式Spring Security\t179
15.1 响应式编程和Spring框架\t179
15.1.1 响应式编程的基本概念\t179
15.1.2 Project Reactor\t181
15.1.3 Spring WebFlux\t184
15.2 响应式Spring Security\t185
15.2.1 响应式用户认证\t185
15.2.2 响应式授权机制\t187
15.2.3 响应式方法级别访问控制\t188
15.3 本章小结\t189
第 16章 测试Spring Security\t191
16.1 测试系统安全性\t191
16.1.1 安全性测试与Mock机制\t191
16.1.2 Spring Security测试解决方案\t192
16.2 测试Spring Security功能\t194
16.2.1 测试用户\t194
16.2.2 测试认证\t196
16.2.3 测试全局方法安全\t197
16.2.4 测试CSRF和CORS配置\t198
16.3 本章小结\t200