創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。成都創(chuàng)新互聯(lián)公司提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。這篇文章主要介紹關(guān)于Spring Security過濾器鏈機制和特性的案例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1. 前言
過濾器作為 Spring Security 的重中之重,我們需要了解其中的機制。這樣我們才能根據(jù)業(yè)務(wù)需求的變化進行定制。今天來探討一下 Spring Security 中的過濾器鏈機制。
2. Spring Security 過濾器鏈
客戶端(APP 和后臺管理客戶端)向應(yīng)用程序發(fā)送請求,然后應(yīng)用根據(jù)請求的 URI 的路徑來確定該請求的過濾器鏈(Filter)以及最終的具體 Servlet 控制器(Controller)。
從上圖我們可以看出 Spring Security 以一個單 Filter(FilterChainProxy) 存在于整個過濾器鏈中,而這個 FilterChainProxy
實際內(nèi)部代理著眾多的 Spring Security Filter 。這簡直就是套娃?。?/p>
2.1 過濾器鏈的形成過程
再多說一點 Filter 們的初始化過程,首先 Filter 們按照一定的順序被 SecurityBuilder
的實現(xiàn)來組裝為 SecurityFilterChain
,然后通過 WebSecurity
注入到 FilterChainProxy
中去,接著 FilterChainProxy
又在 WebSecurityConfiguration
中以 springSecurityFilterChain
的名稱注冊為 Spring Bean 。實際上還有一個隱藏層 DelegatingFilterProxy
代理了 springSecurityFilterChain
注入到最后整個 Servlet 過濾器鏈中。簡單畫了個圖;
★事實上 Spring Security 的內(nèi)置 Filter 對于 Spring IoC 容器來說都是不可見的。
”
Spring Security 允許有多 條過濾器鏈并行,Spring Security 的 FilterChainProxy
可以代理多條過濾器鏈并根據(jù)不同的 URI 匹配策略進行分發(fā)。但是每個請求每次只能被分發(fā)到一條過濾器鏈。如下圖所示:
關(guān)于 Filter 的其它細節(jié)可以通過 相關(guān)文章[1] 了解。
★實際每條過濾鏈 就是一個
”SecurityFilterChain
以上是關(guān)于Spring Security過濾器鏈機制和特性的案例分析的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!