第1部分 2
第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部分 36
第4章 实现图形验证码 36
4.1 使用过滤器实现图形验证码 36
4.1.1 自定义过滤器 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部分 162
第13章 用Spring Social实现OAuth对接 162
13.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部分 206
第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