成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起學(xué)習(xí) Spring Security過(guò)濾器鏈體系

開發(fā) 架構(gòu)
不管用戶是哪種角色,都走的是一個(gè)過(guò)濾器鏈,一個(gè)應(yīng)用中存在1-n個(gè)SecurityFilterChain。那誰(shuí)來(lái)管理多個(gè)SecurityFilterChain呢?

在學(xué)習(xí)Spring Security的時(shí)候你有沒有下面這兩個(gè)疑問(wèn):

  • Spring Security的登錄是怎么配置的?
  • Spring Security的訪問(wèn)控制是什么機(jī)制?

SpringBootWebSecurityConfiguration

上面兩個(gè)疑問(wèn)的答案就在配置類SpringBootWebSecurityConfiguration中。你可以按照下面這個(gè)思維導(dǎo)圖去理解這個(gè)自動(dòng)配置:

SpringBootWebSecurityConfiguration為Spring Boot應(yīng)用提供了一套默認(rèn)的Spring Security配置。

 @Bean
@Order(SecurityProperties.BASIC_AUTH_ORDER)
SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().formLogin().and().httpBasic();
return http.build();
}

這里的配置為:所有的請(qǐng)求都必須是認(rèn)證用戶發(fā)起的,同時(shí)開啟表單登錄功能以及Http Basic Authentication認(rèn)證功能。我們?cè)L問(wèn)/foo/bar時(shí)需要登錄認(rèn)證并且能夠進(jìn)行表單登錄就是這個(gè)配置起作用了。這個(gè)是我們?nèi)粘i_發(fā)需要自定義的,在HttpSecurity相關(guān)的文章中胖哥也進(jìn)行了講解。這個(gè)SecurityFilterChain到底是什么呢?

SecurityFilterChain

從上面看得出HttpSecurity就是一個(gè)構(gòu)建類,它的使命就是構(gòu)建出一個(gè)SecurityFilterChain:

public interface SecurityFilterChain {
// 當(dāng)前請(qǐng)求是否匹配
boolean matches(HttpServletRequest request);
// 一攬子過(guò)濾器組成的有序過(guò)濾器鏈
List<Filter> getFilters();
}

當(dāng)一個(gè)請(qǐng)求HttpServletRequest進(jìn)入SecurityFilterChain時(shí),會(huì)通過(guò)matches方法來(lái)確定是否滿足條件進(jìn)入過(guò)濾器鏈。就好比你是VIP走的是VIP通道,享受的是VIP的一系列待遇;你是普通用戶,就走普通用戶的通道并享受普通用戶的待遇。

不管用戶是哪種角色,都走的是一個(gè)過(guò)濾器鏈,一個(gè)應(yīng)用中存在1-n個(gè)SecurityFilterChain。那誰(shuí)來(lái)管理多個(gè)SecurityFilterChain呢?

記住這個(gè)公式HttpSecurity ->SecurityFilterChain。

FilterChainProxy

FilterChainProxy是一個(gè)GenericFilterBean(即使Servlet Filter又是Spring Bean),它管理了所有注入Spring IoC容器的SecurityFilterChain。在我剛接觸Spring Security的時(shí)候是這樣配置FilterChainProxy的:

    <bean id="myfilterChainProxy" class="org.springframework.security.web.FilterChainProxy">
<constructor-arg>
<util:list>
<security:filter-chain pattern="/do/not/filter*" filters="none"/>
<security:filter-chain pattern="/**" filters="filter1,filter2,filter3"/>
</util:list>
</constructor-arg>
</bean>

根據(jù)不同的請(qǐng)求路徑匹配走不同的SecurityFilterChain。下面是示意圖:

后面還會(huì)對(duì)遇到這個(gè)類,現(xiàn)在你只需要明白上面這個(gè)圖就行了。

請(qǐng)注意:在同一過(guò)濾器鏈中不建議有多個(gè)FilterChainProxy實(shí)例,而且不應(yīng)將其作為單純的過(guò)濾器使用,它只應(yīng)該承擔(dān)管理SecurityFilterChain的功能。

DelegatingFilterProxyS

ervlet 容器和Spring IoC容器之間的Filter生命周期并不匹配。為了讓Spring IoC容器管理Filter的生命周期,F(xiàn)ilterChainProxy便交由Spring Web下的DelegatingFilterProxy來(lái)代理。而且FilterChainProxy不會(huì)在添加到應(yīng)用程序上下文的任何過(guò)濾器Bean上調(diào)用標(biāo)準(zhǔn)Servlet過(guò)濾器生命周期方法,F(xiàn)ilterChainProxy的生命周期方法會(huì)委托給DelegatingFilterProxy來(lái)執(zhí)行。而DelegatingFilterProxy作為Spring IoC和Servlet的連接器存在。

簡(jiǎn)單總結(jié)

上面的三個(gè)概念非常重要,涉及到Spring Security的整個(gè)過(guò)濾器鏈體系。但是作為初學(xué)者來(lái)說(shuō),能看懂多少就看懂多少,不要糾結(jié)哪些沒有理解,因?yàn)槟壳皩W(xué)習(xí)階段的層次達(dá)不到是非常正常的。但是等你學(xué)完了Spring Security之后,這幾個(gè)概念一定要搞明白。


責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)小胖哥
相關(guān)推薦

2022-02-14 07:32:13

Spring過(guò)濾器鏈Matcher

2022-02-16 23:58:41

Spring過(guò)濾器驗(yàn)證碼

2022-02-21 23:58:49

Spring過(guò)濾器順序值

2021-05-19 10:37:16

WebFlux 前置工具

2022-02-14 10:16:22

Axios接口HTTP

2022-11-03 07:51:54

運(yùn)維體系監(jiān)控

2021-11-11 07:38:15

服務(wù)器過(guò)濾器框架

2021-11-26 09:44:42

鏈表節(jié)點(diǎn)定位

2021-05-20 07:15:34

RSA-PSS算法簽名

2022-12-01 09:59:57

內(nèi)核觀測(cè)性方法

2023-03-28 07:32:37

2023-03-26 12:45:52

Linux內(nèi)核頭文件

2023-01-26 01:41:27

核心全局過(guò)濾器

2021-10-27 07:15:37

SpringAOP編程(

2024-01-08 08:33:53

AOPSpring攔截器

2017-04-12 14:43:01

Spring ClouZuul過(guò)濾器

2021-07-05 15:22:03

Servlet過(guò)濾器客戶端

2021-03-18 00:04:13

C# 類型數(shù)據(jù)

2021-10-11 10:25:33

排列nums數(shù)組

2024-01-05 09:04:35

隆過(guò)濾器數(shù)據(jù)結(jié)構(gòu)哈希函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本在线视频中文字幕 | 一区二区中文字幕 | 国产亚洲一区二区精品 | 中文字幕一区二区三区四区不卡 | 欧美日本韩国一区二区 | 亚洲手机在线 | 免费观看黄色一级片 | 国产精品久久国产精品 | 国产精品乱码一区二区三区 | 亚洲不卡视频 | 国产精品国产成人国产三级 | 日韩日b视频 | 中文字幕一区在线观看视频 | 国产精品亚洲一区二区三区在线 | 精品91久久 | 精品福利在线 | 日本一区二区三区免费观看 | 欧美日本亚洲 | 欧洲精品久久久久毛片完整版 | 亚洲电影免费 | 伊人春色在线 | 丁香婷婷久久久综合精品国产 | 五月婷婷视频 | 99国内精品久久久久久久 | 欧美激情国产日韩精品一区18 | 中文字幕免费在线 | 激情黄色在线观看 | 欧美精品一区二区三区在线 | www狠狠爱com | 欧美日韩成人影院 | 久久国产精品久久久久久 | 久久久精品一区二区三区 | 日韩在线免费视频 | 天天射网站 | 18成人在线观看 | 人人干在线 | 午夜一区| 在线三级电影 | 日韩另类 | 欧美激情精品久久久久久变态 | 国产黄色在线 |