Spring Security實戰

Spring Security實戰

《Spring Security實戰》是2019年8月電子工業出版社出版的圖書,作者是陳木鑫。

基本介紹

  • 中文名:Spring Security實戰
  • 作者:陳木鑫
  • 出版時間:2019年8月
  • 出版社:電子工業出版社
  • 頁數:296 頁
  • ISBN:9787121371431
  • 定價:79 元
  • 開本:16 開
內容簡介,目錄,

內容簡介

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,第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

相關詞條

熱門詞條

聯絡我們