欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

全面解析Spring Security 過濾器鏈的機(jī)制和特性

 更新時間:2020年07月06日 14:59:11   作者:碼農(nóng)小胖哥  
這篇文章主要介紹了Spring Security 過濾器鏈的機(jī)制和特性,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1. 前言

過濾器作為 Spring Security 的重中之重,我們需要了解其中的機(jī)制。這樣我們才能根據(jù)業(yè)務(wù)需求的變化進(jìn)行定制。今天來探討一下 Spring Security 中的過濾器鏈機(jī)制。

2. Spring Security 過濾器鏈

客戶端(APP 和后臺管理客戶端)向應(yīng)用程序發(fā)送請求,然后應(yīng)用根據(jù)請求的 URI 的路徑來確定該請求的過濾器鏈(Filter)以及最終的具體 Servlet 控制器(Controller)。

從上圖我們可以看出 Spring Security 以一個單 Filter(FilterChainProxy) 存在于整個過濾器鏈中,而這個 FilterChainProxy 實際內(nèi)部代理著眾多的 Spring Security Filter 。這簡直就是套娃啊!

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 SecurityFilterChainProxy 可以代理多條過濾器鏈并根據(jù)不同的 URI 匹配策略進(jìn)行分發(fā)。但是每個請求每次只能被分發(fā)到一條過濾器鏈。如下圖所示:

關(guān)于 Filter 的其它細(xì)節(jié)可以通過 相關(guān)文章[1] 了解。

實際每條過濾鏈 就是一個 SecurityFilterChain

4. 總結(jié)

今天我們通過對 Spring Security 中 過濾器鏈機(jī)制,對于深入學(xué)習(xí) Spring Security 有著至關(guān)重要的意義。有什么問題和心得請留言反饋。

參考資料

相關(guān)文章: https://www.felord.cn/spring-security-filters.html

到此這篇關(guān)于Spring Security 過濾器鏈的機(jī)制和特性的文章就介紹到這了,更多相關(guān)Spring Security 過濾器鏈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中方法的使用、重載與遞歸的詳細(xì)介紹

    Java中方法的使用、重載與遞歸的詳細(xì)介紹

    前面我們提到了方法需要參數(shù)類型,但是如果我們需要用一個函數(shù)同時兼容多種參數(shù)的情況應(yīng)該怎么辦呢? 這里就可以使用到方法重載,對Java中方法的使用、重載與遞歸相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • Java中的Vector和ArrayList區(qū)別及比較

    Java中的Vector和ArrayList區(qū)別及比較

    這篇文章主要介紹了Java中的Vector和ArrayList區(qū)別及比較,本文從API、同步、數(shù)據(jù)增長、使用模式4個方面總結(jié)了它們之間的不同之處,需要的朋友可以參考下
    2015-03-03
  • Java文件斷點續(xù)傳實現(xiàn)原理解析

    Java文件斷點續(xù)傳實現(xiàn)原理解析

    這篇文章主要介紹了Java文件斷點續(xù)傳實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • java常用API介紹之包裝類

    java常用API介紹之包裝類

    這篇文章主要介紹了java常用API介紹之包裝類,API,即Application Programming Interface,中文名稱是“應(yīng)用程序接口",這些接口就是"jdk所提供"給我們使用的類,需要的朋友可以參考下
    2023-04-04
  • 基于springboot微信公眾號開發(fā)(微信自動回復(fù))

    基于springboot微信公眾號開發(fā)(微信自動回復(fù))

    這篇文章主要介紹了基于springboot微信公眾號開發(fā)(微信自動回復(fù)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • servlet3文件上傳操作

    servlet3文件上傳操作

    這篇文章主要介紹了servlet3文件上傳操作的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • java常用Lambda表達(dá)式使用場景源碼示例

    java常用Lambda表達(dá)式使用場景源碼示例

    這篇文章主要為大家介紹了java常用Lambda表達(dá)式使用場景源碼示例及應(yīng)用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)(IO版)

    java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)(IO版)

    這篇文章主要為大家詳細(xì)介紹了java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)(IO版),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Java加權(quán)負(fù)載均衡策略實現(xiàn)過程解析

    Java加權(quán)負(fù)載均衡策略實現(xiàn)過程解析

    這篇文章主要介紹了Java加權(quán)負(fù)載均衡策略實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Spring Boot整合郵件發(fā)送與注意事項

    Spring Boot整合郵件發(fā)送與注意事項

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合郵件發(fā)送與注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07

最新評論