第 1 部分
第 1 章 初识 Spring Security .......................................................................................... 2
1.1 Spring Security 简介 .............................................................................................. 2
1.2 创建一个简单的 Spring Security 项目 .................................................................. 4
第 2 章 表单认证 ......................................................................................................... 10
2.1 默认表单认证 ...................................................................................................... 10
2.2 自定义表单登录页 .............................................................................................. 13
第 3 章 认证与授权 ...................................................................................................... 19
3.1 默认数据库模型的认证与授权 .......................................................................... 19
3.1.1 资源准备 ................................................................................................... 19
3.1.2 资源授权的配置 ....................................................................................... 20
3.1.3 基于内存的多用户支持 ........................................................................... 22
3.1.4 基于默认数据库模型的认证与授权 ........................................................ 22
3.2 自定义数据库模型的认证与授权 ...................................................................... 27
3.2.1 实现 UserDetails........................................................................................ 27
3.2.2 实现 UserDetailsService ............................................................................ 31
第 2 部分
第 4 章 实现图形验证码 ............................................................................................... 36
4.1.2 图形验证码过滤器 ................................................................................... 39
4.2 使用自定义认证实现图形验证码 ...................................................................... 44
4.2.1 认识 AuthenticationProvider ..................................................................... 44
4.2.2 自定义 AuthenticationProvider ................................................................. 47
4.2.3 实现图形验证码的 AuthenticationProvider ............................................. 53
第 5 章 自动登录和注销登录 ........................................................................................ 59
5.1 为什么需要自动登录 .......................................................................................... 59
5.2 实现自动登录 ...................................................................................................... 60
5.3 注销登录 .............................................................................................................. 69
第 6 章 会话管理 ......................................................................................................... 75
6.1 理解会话 .............................................................................................................. 75
6.2 防御会话固定攻击 .............................................................................................. 76
6.3 会话过期 .............................................................................................................. 78
6.4 会话并发控制 ...................................................................................................... 79
6.5 集群会话的缺陷 .................................................................................................. 93
6.6 集群会话的解决方案 .......................................................................................... 94
6.7 整合 Spring Session 解决集群会话问题 ............................................................. 95
第 7 章 密码加密 ......................................................................................................... 98
7.1 密码安全的重要性 .............................................................................................. 98
7.2 密码加密的演进 .................................................................................................. 98
7.3 Spring Security 的密码加密机制 ...................................................................... 102
第 8 章 跨域与 CORS ................................................................................................ 105
8.1 认识跨域 ............................................................................................................ 105
8.2 实现跨域之JSONP ............................................................................................ 106
8.3 实现跨域之 CORS ............................................................................................. 108
8.4 启用 Spring Security 的 CORS 支持 ................................................................. 110
第 9 章 跨域请求伪造的防护 ....................................................................................... 113
9.1 CSRF 的攻击过程 .............................................................................................. 113
9.2 CSRF 的防御手段 .............................................................................................. 114
9.3 使用 Spring Security 防御 CSRF 攻击 .............................................................. 115
第 10 章 单点登录与 CAS .......................................................................................... 125
10.1 单点登录 .......................................................................................................... 125
10.2 认识 CAS ......................................................................................................... 129
10.3 搭建 CAS Server .............................................................................................. 130
10.4 用 Spring Security 实现 CAS Client ................................................................ 138
第 11 章 HTTP 认证 ................................................................................................... 144
11.1 HTTP 基本认证 ............................................................................................... 144
11.2 HTTP 摘要认证 ............................................................................................... 145
11.2.1 认识 HTTP 摘要认证 ............................................................................ 145
11.2.2 Spring Security 对 HTTP 摘要认证的集成支持 .................................. 146
11.2.3 编码实现 ............................................................................................... 148
第 12 章 @EnableWebSecurity 与过滤器链机制 ....................................................... 151
12.1 @EnableWebSecurity ....................................................................................... 151
12.2 WebSecurityConfiguration ............................................................................... 152
第 3 部分
第 13 章 用 Spring Social 实现 OAuth 对接 ............................................................... 162 13.1.1 OAuth 简介 ................................................................................................... 162
13.1.1 什么是 OAuth........................................................................................ 162
13.1.2 OAuth 的运行流程 ................................................................................ 164
13.2 QQ 互联对接准备 ............................................................................................ 168
13.2.1 申请 QQ 互联应用 ................................................................................ 169
13.2.2 QQ 互联指南 ......................................................................................... 170
13.2.3 回调域名准备 ....................................................................................... 174
13.3 实现 QQ 快捷登录 ........................................................................................... 176
13.3.1 引入 Spring Social ................................................................................. 176
13.3.2 新增 OAuth 服务支持的流程 ............................................................... 178
13.3.3 编码实现 ............................................................................................... 179
13.4 与 Spring Security 整合 ................................................................................... 192
13.5 Spring Social 源码分析 .................................................................................... 194
13.5.1 SocialAuthenticationFilter ..................................................................... 194
13.5.2 OAuth2AuthenticationService ............................................................... 195
13.5.3 OAuth2Connection ................................................................................ 196
13.5.4 OAuth2Template .................................................................................... 198
13.5.5 SocialAuthenticationProvider ................................................................ 199
13.5.6 JdbcUsersConnectionRepository ........................................................... 200
13.6 配置相关 .......................................................................................................... 200
第 4 部分
第 14 章 用 Spring Security OAuth 实现 OAuth 对接 ................................................. 206 14.1 实现 GitHub 快捷登录 .................................................................................... 207
14.2 用 Spring Security OAuth 实现 QQ 快捷登录 ................................................ 210
14.2.1 OAuth 功能扩展流程 ............................................................................ 210
14.2.2 编码实现 ............................................................................................... 212
14.2.3 自定义 login.html 和 index.html ........................................................... 223
14.2.4 自定义 Controller 映射 ......................................................................... 224
14.2.5 启用自定义登录页 ............................................................................... 225
14.3 OAuth Client 功能核心源码分析 .................................................................... 226
14.3.1 OAuth2AuthorizationRequestRedirectFilter ......................................... 227
14.3.2 OAuth2LoginAuthenticationFilter ......................................................... 228
14.3.3 DefaultLoginPageGeneratingFilter ........................................................ 230
14.3.4 OAuth2LoginAuthenticationProvider .................................................... 231
14.4 Spring Security OAuth 授权服务器 ................................................................. 232
14.4.1 功能概述 ............................................................................................... 233
14.4.2 依赖包说明 ........................................................................................... 233
14.4.3 编码实现 ............................................................................................... 234
14.5 OAuth 授权服务器功能扩展和自定义配置 ................................................... 236
14.5.1 自定义配置的授权服务器.................................................................... 237
14.5.2 编写 OAuth 客户端 ............................................................................... 247
14.5.3 使用 JDBC 存储 OAuth 客户端信息 ................................................... 248
14.5.4 使用 JDBC 存储 token .......................................................................... 254
14.5.5 其他功能配置 ....................................................................................... 255
14.6 实现 OAuth 资源服务器 .................................................................................. 255
14.6.1 依托于授权服务器的资源服务器 ........................................................ 256
14.6.2 独立的资源服务器 ............................................................................... 258
14.7 Spring Security OAuth 核心源码分析 ............................................................. 263
14.7.1 授权服务器核心源码分析.................................................................... 264
14.7.2 资源服务器核心源码分析.................................................................... 271
· · · · · · (
收起)