Spring Security原理與實戰(zhàn)
定 價:79.9 元
- 作者:鄭天民
- 出版時間:2022/3/1
- ISBN:9787115577894
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312.8
- 頁碼:200
- 紙張:
- 版次:01
- 開本:16開
本書主要介紹基于 Spring Security 構(gòu)建系統(tǒng)安全性的技術(shù)體系和工程實踐。圍繞安全性需求,本書討論Spring Security框架所提供的各項解決方案,包括認(rèn)證、授權(quán)、加密、CSRF保護、CORS、方法級安全訪問、OAuth2協(xié)議、微服務(wù)架構(gòu)、JWT、單點登錄等核心功能。同時,本書基于這些功能構(gòu)建了完整的三個案例系統(tǒng),并給出了具體的實現(xiàn)過程和示例代碼。
本書面向廣大服務(wù)端開發(fā)人員,讀者不需要有很深的技術(shù)功底,也不限于特定的開發(fā)語言,但熟悉Java EE常見技術(shù)并掌握一定系統(tǒng)設(shè)計基本概念有助于更好地理解書中的內(nèi)容。同時,本書也適合對安全性實現(xiàn)技術(shù)感興趣的開發(fā)人員學(xué)習(xí)。
1.內(nèi)容豐富,案例實戰(zhàn)
本書案例翔實,內(nèi)容涵蓋當(dāng)前熱門系統(tǒng)安全問題,針對相關(guān)主題提供案例,從多個維度介紹Spring Security的實戰(zhàn)技巧,幫助開發(fā)人員深刻理解系統(tǒng)安全機制。
2.技術(shù)創(chuàng)新,知識新穎
本書系統(tǒng)剖析了 Spring Security的響應(yīng)式編程模型以及測試體系,幫助開發(fā)人員構(gòu)建完整的知識體系。
3.由淺入深,簡單易懂
本書面向廣大服務(wù)端開發(fā)人員,讀者不需要有很深的技術(shù)功底,也不限于特定的開發(fā)語言,從業(yè)內(nèi)常見安全性需求出發(fā),由淺入深的講解了從認(rèn)識Spring Security到基于Spring Security構(gòu)建OAuth2授權(quán)服務(wù)器等相關(guān)專業(yè)知識,讓你更深入的了解Spring Security技術(shù)體系和實現(xiàn)機制。
鄭天民,日本足利工業(yè)大學(xué)信息工程學(xué)碩士,擁有 10 余年軟件行業(yè)從業(yè)經(jīng)驗,目前在一家大健康領(lǐng)域的創(chuàng)新型科技公司擔(dān)任CTO,負(fù)責(zé)產(chǎn)品研發(fā)與技術(shù)團隊管理工作。開發(fā)過 10 余個面向研發(fā)人員的技術(shù)和管理類培訓(xùn)課程項目,在架構(gòu)設(shè)計和技術(shù)管理方面具有豐富的經(jīng)驗和深入的理解。他還是阿里云MVP、騰訊云TVP、TGO鯤鵬會會員。著有《Apache ShardingSphere實戰(zhàn)》《Spring響應(yīng)式微服務(wù)Spring Boot 2+Spring 5+Spring Cloud實戰(zhàn)》《系統(tǒng)架構(gòu)設(shè)計》《向技術(shù)管理者轉(zhuǎn)型》《微服務(wù)設(shè)計原理與架構(gòu)》《微服務(wù)架構(gòu)實戰(zhàn)》等圖書。
第 1篇 Spring Security概述
第 1章 直面Spring Security 3
1.1 Spring Security概覽 3
1.2 Spring Security功能體系 4
1.2.1 Spring Security與單體應(yīng)用 5
1.2.2 Spring Security與微服務(wù)架構(gòu) 7
1.2.3 Spring Security與響應(yīng)式系統(tǒng) 8
1.3 Spring Security配置體系 9
1.4 全書內(nèi)容架構(gòu) 10
1.5 本章小結(jié) 11
第 2篇 認(rèn)證和授權(quán)
第 2章 用戶認(rèn)證 15
2.1 HTTP基礎(chǔ)認(rèn)證和表單登錄認(rèn)證 15
2.1.1 HTTP基礎(chǔ)認(rèn)證 16
2.1.2 表單登錄認(rèn)證 17
2.2 配置Spring Security用戶認(rèn)證體系 18
2.2.1 使用基于內(nèi)存的用戶信息存儲方案 19
2.2.2 使用基于數(shù)據(jù)庫的用戶信息存儲方案 19
2.3 Spring Security中的用戶對象和認(rèn)證對象 21
2.3.1 Spring Security中的用戶對象 21
2.3.2 Spring Security中的認(rèn)證對象 24
2.4 實現(xiàn)定制化用戶認(rèn)證方案 27
2.4.1 擴展UserDetails 27
2.4.2 擴展UserDetailsService 28
2.4.3 擴展AuthenticationProvider 29
2.5 本章小結(jié) 31
第3章 訪問授權(quán) 33
3.1 Spring Security中的權(quán)限和角色 33
3.1.1 基于權(quán)限進行訪問控制 34
3.1.2 基于角色進行訪問控制 35
3.2 使用配置方法控制訪問權(quán)限 37
3.2.1 MVC匹配器 38
3.2.2 Ant匹配器 39
3.2.3 正則表達式匹配器 40
3.3 Spring Security授權(quán)流程 41
3.3.1 攔截請求 43
3.3.2 獲取權(quán)限配置 43
3.3.3 執(zhí)行授權(quán)決策 46
3.4 本章小結(jié) 49
第4章 密碼安全 51
4.1 密碼編碼器 51
4.1.1 PasswordEncoder抽象 52
4.1.2 自定義PasswordEncoder 54
4.1.3 代理式DelegatingPasswordEncoder 55
4.2 Spring Security加密模塊 59
4.3 本章小結(jié) 60
第5章 案例實戰(zhàn):實現(xiàn)自定義用戶認(rèn)證體系 61
5.1 案例設(shè)計和初始化 61
5.1.1 案例設(shè)計 61
5.1.2 系統(tǒng)初始化 62
5.2 實現(xiàn)自定義用戶認(rèn)證 65
5.2.1 實現(xiàn)用戶管理 65
5.2.2 實現(xiàn)認(rèn)證流程 67
5.2.3 實現(xiàn)安全配置 68
5.3 本章小結(jié) 70
第3篇 擴展插件
第6章 過濾器 73
6.1 Spring Security過濾器架構(gòu) 73
6.1.1 Servlet與管道-過濾器模式 73
6.1.2 Spring Security中的過濾器鏈 74
6.2 實現(xiàn)自定義過濾器 75
6.2.1 開發(fā)過濾器 75
6.2.2 配置過濾器 77
6.3 Spring Security中的過濾器 78
6.4 本章小結(jié) 80
第7章 CSRF和CORS 81
7.1 使用Spring Security提供CSRF保護 81
7.1.1 CSRF基本概念 81
7.1.2 使用CsrfFilter 82
7.1.3 定制化CSRF保護 85
7.2 使用Spring Security實現(xiàn)CORS 87
7.2.1 CORS基本概念 87
7.2.2 使用CorsFilter 88
7.2.3 使用@CrossOrigin注解 88
7.3 本章小結(jié) 89
第8章 全局方法安全 91
8.1 全局方法安全機制 91
8.2 使用注解實現(xiàn)方法級別授權(quán) 92
8.2.1 @PreAuthorize注解 92
8.2.2 @PostAuthorize注解 94
8.3 使用注解實現(xiàn)方法級別過濾 95
8.3.1 @PreFilter注解 95
8.3.2 @PostFilter注解 96
8.4 本章小結(jié) 97
第9章 案例實戰(zhàn):實現(xiàn)多因素認(rèn)證機制 99
9.1 案例設(shè)計和初始化 99
9.1.1 多因素認(rèn)證設(shè)計 99
9.1.2 系統(tǒng)初始化 100
9.2 實現(xiàn)多因素認(rèn)證機制 101
9.2.1 實現(xiàn)認(rèn)證服務(wù) 101
9.2.2 實現(xiàn)前端服務(wù) 103
9.3 本章小結(jié) 109
第4篇 微服務(wù)安全
第 10章 OAuth2協(xié)議 113
10.1 OAuth2協(xié)議詳解 113
10.1.1 OAuth2協(xié)議的應(yīng)用場景 113
10.1.2 OAuth2協(xié)議的角色 115
10.1.3 OAuth2協(xié)議的令牌 116
10.1.4 OAuth2協(xié)議的授權(quán)模式 117
10.2 OAuth2授權(quán)服務(wù)器 118
10.2.1 構(gòu)建OAuth2授權(quán)服務(wù)器 118
10.2.2 設(shè)置客戶端和用戶認(rèn)證信息 119
10.2.3 生成令牌 123
10.3 本章小結(jié) 124
第 11章 OAuth2協(xié)議與微服務(wù)架構(gòu) 125
11.1 集成OAuth2協(xié)議與微服務(wù)架構(gòu) 125
11.1.1 微服務(wù)架構(gòu)技術(shù)體系 125
11.1.2 OAuth2協(xié)議與微服務(wù)架構(gòu)集成方式 129
11.2 在微服務(wù)中嵌入訪問授權(quán)控制 132
11.2.1 用戶層級的權(quán)限訪問控制 132
11.2.2 用戶+角色層級的權(quán)限訪問控制 133
11.2.3 用戶+角色+請求方法層級的權(quán)限訪問控制 133
11.3 在微服務(wù)中傳播令牌 134
11.4 本章小結(jié) 135
第 12章 JWT概述 137
12.1 JWT 137
12.1.1 JWT的基本結(jié)構(gòu) 137
12.1.2 JWT的優(yōu)勢 138
12.2 集成OAuth2協(xié)議與JWT 138
12.3 在微服務(wù)中使用JWT 141
12.3.1 從HTTP請求中獲取JWT令牌 142
12.3.2 以線程安全的方式存儲JWT令牌 142
12.3.3 將JWT令牌嵌入RestTemplate請求中 143
12.4 本章小結(jié) 144
第 13章 單點登錄 145
13.1 單點登錄架構(gòu) 145
13.1.1 單點登錄與OAuth2協(xié)議 145
13.1.2 單點登錄的工作流程 146
13.2 實現(xiàn)SSO服務(wù)器端 147
13.2.1 配置基礎(chǔ)認(rèn)證和授權(quán)信息 147
13.2.2 配置OAuth2授權(quán)服務(wù)器 148
13.3 實現(xiàn)SSO客戶端 150
13.4 本章小結(jié) 152
第 14章 案例實戰(zhàn):構(gòu)建微服務(wù)安全架構(gòu) 153
14.1 案例設(shè)計和初始化 153
14.1.1 案例業(yè)務(wù)模型 153
14.1.2 案例設(shè)計 155
14.2 構(gòu)建微服務(wù)基礎(chǔ)設(shè)施組件 157
14.2.1 注冊中心 157
14.2.2 配置中心 159
14.2.3 服務(wù)網(wǎng)關(guān) 162
14.3 實現(xiàn)業(yè)務(wù)服務(wù) 165
14.3.1 集成微服務(wù)基礎(chǔ)組件 165
14.3.2 實現(xiàn)業(yè)務(wù)流程 170
14.4 集成和擴展JWT 172
14.4.1 集成JWT 172
14.4.2 擴展JWT 173
14.5 本章小結(jié) 176
第5篇 響應(yīng)式安全
第 15章 響應(yīng)式Spring Security 179
15.1 響應(yīng)式編程和Spring框架 179
15.1.1 響應(yīng)式編程的基本概念 179
15.1.2 Project Reactor 181
15.1.3 Spring WebFlux 184
15.2 響應(yīng)式Spring Security 185
15.2.1 響應(yīng)式用戶認(rèn)證 185
15.2.2 響應(yīng)式授權(quán)機制 187
15.2.3 響應(yīng)式方法級別訪問控制 188
15.3 本章小結(jié) 189
第 16章 測試Spring Security 191
16.1 測試系統(tǒng)安全性 191
16.1.1 安全性測試與Mock機制 191
16.1.2 Spring Security測試解決方案 192
16.2 測試Spring Security功能 194
16.2.1 測試用戶 194
16.2.2 測試認(rèn)證 196
16.2.3 測試全局方法安全 197
16.2.4 測試CSRF和CORS配置 198
16.3 本章小結(jié) 200