javascript
SpringSecurity过滤器链加载原理
SpringSecurity過濾器鏈加載原理
通過前面十五個過濾器功能的介紹,對于SpringSecurity簡單入門中的疑惑是不是在心中已經(jīng)有了答案了呀? 但新的問題來了!我們并沒有在web.xml中配置這些過濾器啊?它們都是怎么被加載出來的?
DelegatingFilterProxy
我們在web.xml中配置了一個名稱為springSecurityFilterChain的過濾器DelegatingFilterProxy,接下我直接對 DelegatingFilterProxy源碼里重要代碼進行說明,其中刪減掉了一些不重要的代碼,大家注意我寫的注釋就行了!
?第二步debug結(jié)果如下
由此可知,DelegatingFilterProxy通過springSecurityFilterChain這個名稱,得到了一個FilterChainProxy過濾器,最終在第三步執(zhí)行了這個過濾器。
FilterChainProxy
注意代碼注釋!注意代碼注釋!注意代碼注釋!
?第二步debug結(jié)果如下圖所示,驚不驚喜?十五個過濾器都在這里了!
再看第三步,懷疑這么久!原來這些過濾器還真是都被封裝進SecurityFilterChain中了。
SecurityFilterChain
最后看SecurityFilterChain,這是個接口,實現(xiàn)類也只有一個,這才是web.xml中配置的過濾器鏈對象!
總結(jié)
通過此章節(jié),我們對SpringSecurity工作原理有了一定的認識。但理論千萬條,功能第一條,探尋底層,是 為了更好的使用框架。
那么,言歸正傳!到底如何使用自己的頁面來實現(xiàn)SpringSecurity的認證操作呢?要完成此功能,首先要有一套 自己的頁面!
總結(jié)
以上是生活随笔為你收集整理的SpringSecurity过滤器链加载原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringSecurity分布式整合之
- 下一篇: SpringSecurity使用自定义认