Spring Security原理篇(六)梳理一下再出發(fā)

  • 陸陸續(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類圖
  • WebSecurityHttpSecurity一樣實(shí)現(xiàn)了SecurityBuilder接口,通過調(diào)用接口定義的build()方法返回的是Filter

  • WebSecurity總給我一種包工頭的感覺,因?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
    1. Filter執(zhí)行的過程中,用戶信息存儲在哪里
    1. 用戶認(rèn)證的流程是怎樣的,我們能修改哪些東西
    1. oauth2怎么做
    1. spring security對于sso的支持
    1. spring cloud網(wǎng)關(guān)zuul中怎樣結(jié)合spring securiy
    1. 寫一個demo。
      等等吧,可能中間會穿插很多東西,畢竟一篇文章說太多的東西實(shí)在是說不明白
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容