Spring Security实战

Spring Security实战
作 者: 陈木鑫
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  陈木鑫,热爱编码,信奉知识沉淀的力量,平常多有关注前沿技术栈,包括但不限于前后端技术、DevOps、Serverless等,近期主要从事IM平台的研发。

内容简介

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的部分核心源码。

图书目录

第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