书籍详情
Spring Security实战
作者:陈木鑫
出版社:电子工业出版社
出版时间:2019-08-01
ISBN:9787121371431
定价:¥79.00
购买这本书可以去
内容简介
Spring Security是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。本书通过4部分内容由浅入深地介绍Spring Security的方方面面。第1部分主要讲解Spring Security的基本配置;第2部分剖析Web项目可能遇到的安全问题,并讲解如何使用Spring Security进行有效防护;第3部分详细介绍OAuth,并使用Spring Social整合Spring Security,实现QQ快捷登录;第4部分重点介绍Spring Security OAuth框架,剖析Spring Security OAuth的部分核心源码。
作者简介
陈木鑫,热爱编码,信奉知识沉淀的力量,平常多有关注前沿技术栈,包括但不限于前后端技术、DevOps、Serverless等,近期主要从事IM平台的研发。
目录
第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 使用过滤器实现图形验证码 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 部分
第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 部分
第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
第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 使用过滤器实现图形验证码 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 部分
第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 部分
第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
猜您喜欢