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