第 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
· · · · · · (
收起)