- 陸陸續(xù)續(xù)流水賬一樣的寫了幾篇關(guān)于
Spring Security的文章,還是寫一篇小小的總結(jié),來總結(jié)一下前面說到的一些知識點(diǎn)。 - 前面的幾篇文章我們?nèi)慷荚趪@Filter來做,包括啟動原理也是只說了
Spring Security是怎樣創(chuàng)建一個Filter的bean,讓application context進(jìn)行管理。不過我想Spring Security弄清楚了過濾器的來龍去脈至少在整體上有了一個把握了吧。 - 前面幾篇文章我們說到了幾個非常重要的類
WebSecurity,HttpSecurity,WebSecurityConfigurerAdapter,WebSecurityConfiguration,這4個類在整個Spring Security的加載過程中顯得尤為重要。搞清楚這幾個類之間的關(guān)系也是很重要 - 我們也說到一些默認(rèn)的
Filter的加載,知道這11個Filter是怎樣被加載到我們的過濾器鏈也很重要
下面還是通過一些圖來說明吧,發(fā)現(xiàn)寫文字寫不清楚了。哎。。。。。。。
1.初始化步驟
1.1步驟1 WebSecurity實(shí)例化以及配置的填充

WebSecurity創(chuàng)建
1.2.Filter構(gòu)建過程

過濾器構(gòu)架過程
2.幾個類的說明
2.1 HttpSecurity
-
我們先看一下類圖
HttpSecurity類圖 -
HttpSecurity實(shí)現(xiàn)了SecurityBuilder接口,通過調(diào)用接口定義的build()方法返回的是DefaultSecurityFilterChain -
HttpSecurity里面包含了對http請求安全配置的各種方法,這些配置最終會轉(zhuǎn)換成為一個一個的Filter按照Order的順序,最終形成一個List<Filter>,但是在配置期間只能是存放在configurers這個Map中,只有等WebSecurity要組合成過濾器鏈的時候才會轉(zhuǎn)換到過濾器。
2.2 WebSecurity
-
看一下類圖
WebSecurity類圖 WebSecurity和HttpSecurity一樣實(shí)現(xiàn)了SecurityBuilder接口,通過調(diào)用接口定義的build()方法返回的是FilterWebSecurity總給我一種包工頭的感覺,因?yàn)樗罱K對注冊到spring application context中的Filter負(fù)責(zé)。因?yàn)樗?code>WebSecurityConfigurerAdapter的信息,他包含了HttpSecurity的信息,他將這兩部分信息組合起來創(chuàng)建Filter
3 后面的內(nèi)容
其實(shí)我們還有不少的疑問沒有解決掉,比如以下緊接著要去解讀的問題:
- 1.
WebSecurity到底存儲了什么信息 - 2.
WebSecurityConfigurerAdapter配置的信息都用在哪些Filter中 - Filter執(zhí)行的過程中,用戶信息存儲在哪里
- 用戶認(rèn)證的流程是怎樣的,我們能修改哪些東西
-
oauth2怎么做
-
-
spring security對于sso的支持
-
-
spring cloud網(wǎng)關(guān)zuul中怎樣結(jié)合spring securiy
-
- 寫一個demo。
等等吧,可能中間會穿插很多東西,畢竟一篇文章說太多的東西實(shí)在是說不明白
- 寫一個demo。

