[202101][深入浅出 Spring Security][王松][著]
GitHub - lenve/spring-security-book-samples: 《深入浅出Spring Security》一书配套源码。
https://github.com/lenve/spring-security-book-samples
第 1 章 Spring Security 架构概览
1.1 Spring Security 简介
1.2 Spring Security 核心功能
1.2.1 认证
1.2.2 授权
1.2.3 其他
1.3 Spring Security 整体架构
1.3.1 认证和授权
1.3.1.1 认证
1.3.1.2 授权
1.3.2 Web 安全
1.3.3 登录数据保存
1.4 小结
第 2 章 Spring Security 认证
2.1 Spring Security 基本认证
2.1.1 快速入门
2.1.2 流程分析
2.1.3 原理分析
2.1.3.1 默认用户生成
2.1.3.2 默认页面生成
2.2 登录表单配置
2.2.1 快速入门
2.2.2 配置细节
2.2.2.1 登录成功
2.2.2.2 登录失败
2.2.2.3 注销登录
2.3 登录用户数据获取
2.3.1 从 SecurityContextHolder 中获取
2.3.1.1 SecurityContextHolder
2.3.1.2 SecurityContextPersistenceFilter
2.3.2 从当前请求对象中获取
2.4 用户定义
2.4.1 基于内存
2.4.2 基于 JdbcUserDetailsManager
2.4.3 基于 MyBatis
2.4.4 基于 Spring Data JPA
2.5 小结
第 3 章 认证流程分析
3.1 登录流程分析
3.1.1 AuthenticationManager
3.1.2 AuthenticationProvider
3.1.3 ProviderManager
3.1.4 AbstractAuthenticationProcessingFilter
3.2 配置多个数据源
3.3 添加登录验证码
3.4 小结
第 4 章 过滤器链分析
4.1 初始化流程分析
4.1.1 ObjectPostProcessor
4.1.2 SecurityFilterChain
4.1.3 SecurityBuilder
4.1.4 FilterChainProxy
4.1.5 SecurityConfigurer
4.1.6 初始化流程分析
4.1.6.1 WebSecurityConfiguration
4.1.6.2 AuthenticationConfiguration
4.2 ObjectPostProcessor 使用
4.3 多种用户定义方式
4.4 定义多个过滤器链
4.5 静态资源过滤
4.6 使用 JSON 格式登录
4.7 添加登录验证码
4.8 小结
第 5 章 密码加密
5.1 密码为什么要加密
5.2 密码加密方案进化史
5.3 PasswordEncoder 详解
5.3.1 PasswordEncoder 常见实现类
5.3.2 DelegatingPasswordEncoder
5.4 实战
5.5 加密方案自动升级
5.6 是谁的 PasswordEncoder
5.7 小结
第 6 章 RememberMe
6.1 RememberMe 简介
6.2 RememberMe 基本用法
6.3 持久化令牌
6.4 二次校验
6.5 原理分析
6.6 小结
第 7 章 会话管理
7.1 会话简介
7.2 会话并发管理
7.2.1 实战
7.2.2 原理分析
7.2.2.1 SessionInformation
7.2.2.2 SessionRegistry
7.2.2.3 SessionAuthenticationStrategy
7.2.2.4 SessionManagementFilter
7.2.2.5 ConcurrentSessionFilter
7.2.2.6 Session 创建时机
7.2.2.7 SessionManagementConfigurer
7.2.2.8 AbstractAuthenticationFilterConfigurer
7.3 会话固定攻击与防御
7.3.1 什么是会话固定攻击
7.3.2 会话固定攻击防御策略
7.4 Session 共享
7.4.1 集群会话方案
7.4.2 实战
7.5 小结
第 8 章 HttpFirewall
8.1 HttpFirewall 简介
8.2 HttpFirewall 严格模式
8.2.1 rejectForbiddenHttpMethod
8.2.2 rejectedBlacklistedUrls
8.2.3 rejectedUntrustedHosts
8.2.4 isNormalized
8.2.5 containsOnlyPrintableAsciiCharacters
8.3 HttpFirewall 普通模式
8.4 小结
第 9 章 漏洞保护
9.1 CSRF 攻击与防御
9.1.1 CSRF 简介
9.1.2 CSRF 攻击演示
9.1.3 CSRF 防御
9.1.3.1 令牌同步模式
9.1.3.2 SameSite
9.1.3.3 需要注意的问题
9.1.4 源码分析
9.2 HTTP 响应头处理
9.2.1 缓存控制
9.2.2 X-Content-Type-Options
9.2.3 Strict-Transport-Security
9.2.4 X-Frame-Options
9.2.5 X-XSS-Protection
9.2.6 Content-Security-Policy
9.2.7 Referrer-Policy
9.2.8 Feature-Policy
9.2.9 Clear-Site-Data
9.3 HTTP 通信安全
9.3.1 使用 HTTPS
9.3.2 代理服务器配置
9.4 小结
第 10 章 HTTP 认证
10.1 HTTP Basic authentication
10.1.1 简介
10.1.2 具体用法
10.1.3 源码分析
10.1.3.1 质询
10.1.3.2 请求解析
10.2 HTTP Digest authentication
10.2.1 简介
10.2.2 具体用法
10.2.3 源码分析
10.2.3.1 质询
10.2.3.2 客户端处理
10.2.3.3 请求解析
10.3 小结
第 11 章 跨域问题
11.1 什么是 CORS
11.2 Spring 处理方案
11.2.1 @CrossOrigin
11.2.2 addCorsMappings
11.2.3 CorsFilter
11.3 Spring Security 处理方案
11.3.1 特殊处理 OPTIONS 请求
11.3.2 继续使用 CorsFilter
11.3.3 专业解决方案
11.4 小结
第 12 章 异常处理
12.1 Spring Security 异常体系
12.2 ExceptionTranslationFilter 原理分析
12.3 自定义异常配置
12.4 小结
第 13 章 权限管理
13.1 什么是权限管理
13.2 Spring Security 权限管理策略
13.3 核心概念
13.3.1 角色与权限
13.3.2 角色继承
13.3.3 两种处理器
13.3.4 前置处理器
13.3.5 后置处理器
13.3.6 权限元数据
13.3.7 权限表达式
13.4 基于 URL 地址的权限管理
13.4.1 基本用法
13.4.2 角色继承
13.4.3 自定义表达式
13.4.4 原理剖析
13.4.5 动态管理权限规则
13.4.5.1 数据库设计
13.4.5.2 实战
13.5 基于方法的权限管理
13.5.1 注解介绍
13.5.2 基本用法
13.5.3 原理剖析
13.6 小结
第 14 章 权限模型
14.1 常见的权限模型
14.2 ACL
14.2.1 ACL 权限模型介绍
14.2.2 ACL 核心概念介绍
14.2.3 ACL 数据库分析
14.2.4 实战
14.2.4.1 准备工作
14.2.4.2 Acl 配置
14.2.4.3 业务配置
14.2.4.4 测试
14.2.4.5 Acl 小结
14.3 RBAC
14.3.1 RBAC 权限模型介绍
14.3.2 RBAC 权限模型分类
14.3.3 RBAC 小结
14.4 小结
第 15 章 OAuth2
15.1 OAuth2 简介
15.2 OAuth2 四种授权模式
15.2.1 授权码模式
15.2.2 简化模式
15.2.3 密码模式
15.2.4 客户端模式
15.3 Spring Security OAuth2
15.4 GitHub 授权登录
15.4.1 准备工作
15.4.2 项目开发
15.4.3 测试
15.4.4 原理分析
15.4.5 自定义配置
15.4.5.1 自定义 ClientRegistrationRepository
15.4.5.2 自定义用户
15.5 授权服务器与资源服务器
15.5.1 项目规划
15.5.2 项目搭建
15.5.2.1 授权服务器搭建
15.5.2.2 资源服务器搭建
15.5.2.3 客户端应用搭建
15.5.3 测试
15.5.4 原理分析
15.5.5 自定义请求
15.6 使用 Redis
15.7 客户端信息存入数据库
15.8 使用 JWT
15.8.1 JWT
15.8.2 JWT 数据格式
15.8.3 OAuth2 中使用 JWT
15.9 小结
|