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

spring Security配置攔截規(guī)則小結(jié)

 更新時(shí)間:2025年09月09日 09:58:59   作者:bug別找我  
本文介紹了使用Spring Security解決后臺(tái)管理系統(tǒng)在訪問(wèn)靜態(tài)資源如圖片時(shí)需要登錄驗(yàn)證的問(wèn)題,通過(guò)配置攔截規(guī)則,將靜態(tài)資源路徑添加到白名單,感興趣的可以了解一下

問(wèn)題描述

使用spring Security實(shí)現(xiàn)后臺(tái)管理系統(tǒng)登錄驗(yàn)證加攔截,訪問(wèn)圖片即靜態(tài)資源時(shí)響應(yīng)需要登錄驗(yàn)證,分析問(wèn)題得出結(jié)論未配置security的攔截規(guī)則,沒(méi)有對(duì)靜態(tài)資源進(jìn)行登錄放行

解決方案:

配置spring Security攔截規(guī)則,將訪問(wèn)路徑添加進(jìn)入白名單中,比如博主將resources下files下的圖片設(shè)置白名單,規(guī)則就是"/files/**",以下就是博主的配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests()
			.antMatchers("/files/**").permitAll()// 配置攔截規(guī)則
			.anyRequest().authenticated();
	}
 }

有關(guān)spring security的配置器相關(guān)規(guī)則

http.authorizeRequests().antMatchers("/api/**").denyAll();    //拒絕api路徑下所有的訪問(wèn)

http.authorizeRequests().antMatchers("/api/**").authenticated();    //api路徑下訪問(wèn)需認(rèn)證通過(guò)

http.authorizeRequests().antMatchers("/api/**").permitAll();    //api路徑下無(wú)條件允許訪問(wèn)

端點(diǎn)保護(hù)配置

了解到這部分的知識(shí)是因?yàn)樵谧?code>OAuth2認(rèn)證的時(shí)候,我發(fā)現(xiàn)項(xiàng)目中的安全配置已經(jīng)開(kāi)放所有請(qǐng)求(即/**請(qǐng)求不進(jìn)行攔截),但是當(dāng)我訪問(wèn)/oauth/token的時(shí)候竟然提示401,百思不得其解。最后發(fā)現(xiàn)原來(lái)在Spring Security中預(yù)制了一些默認(rèn)斷點(diǎn)保護(hù)策略。具體配置是在AuthorizationServerSecurityConfiguration

過(guò)濾規(guī)則踩到的坑

.requestMatchers().antMatchers("/test/**").and()
.authorizeRequests().antMatchers("/test/authenticated").authenticated()
.anyRequest().permitAll().and()

通過(guò)匹配規(guī)則我們可以知道這部分配置的意思是針對(duì)/test/**的請(qǐng)求將使用安全配置,/test/authenticated是需要認(rèn)證的,匹配/test/**且不是/test/authenticated的請(qǐng)求是不需要認(rèn)證的。但是在實(shí)際項(xiàng)目中卻遇到了一個(gè)坑,就是我訪問(wèn)/test/**的任何請(qǐng)求都是需要認(rèn)證的,跟了源碼發(fā)現(xiàn)是使用錯(cuò)誤,具體原因是因?yàn)槲以诶^承WebSecurityConfigurerAdapter重寫(xiě)configure(HttpSecurity http)方法的最后多寫(xiě)了一行代碼

super.configure(http);

我在最后又去調(diào)用了WebSecurityConfigurerAdapterconfigure(HttpSecurity http)方法

protected void configure(HttpSecurity http) throws Exception {
   logger.debug("Using default configure(HttpSecurity). If subclassed this will potentially override subclass configure(HttpSecurity).");
   http
      .authorizeRequests().anyRequest().authenticated().and()
      .formLogin().and()
      .httpBasic();
}

這個(gè)是WebSecurityConfigurerAdapter.configure方法的源碼,它默認(rèn)會(huì)對(duì)所有請(qǐng)求進(jìn)行過(guò)濾。有興趣的同學(xué)可以跟蹤源碼會(huì)發(fā)現(xiàn)Spring Security對(duì)URL攔截規(guī)則最后是存放在Map中,即在super的配置會(huì)覆蓋掉自定義配置導(dǎo)致自定義配置失效,寫(xiě)的比較簡(jiǎn)潔可能不是很好理解。

到此這篇關(guān)于spring Security配置攔截規(guī)則小結(jié)的文章就介紹到這了,更多相關(guān)spring Security 攔截規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 透明化Sharding-JDBC數(shù)據(jù)庫(kù)字段加解密方案

    透明化Sharding-JDBC數(shù)據(jù)庫(kù)字段加解密方案

    這篇文章主要為大家介紹了透明化Sharding-JDBC數(shù)據(jù)庫(kù)字段加解密方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作示例

    Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的簡(jiǎn)單字符串反轉(zhuǎn)操作,結(jié)合實(shí)例形式分別描述了java遍歷逆序輸出以及使用StringBuffer類的reverse()方法兩種字符串反轉(zhuǎn)操作技巧,需要的朋友可以參考下
    2018-08-08
  • idea中database不顯示問(wèn)題的解決

    idea中database不顯示問(wèn)題的解決

    這篇文章主要介紹了idea中database不顯示問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談一下Java為什么不能使用字符流讀取非文本的二進(jìn)制文件

    淺談一下Java為什么不能使用字符流讀取非文本的二進(jìn)制文件

    這篇文章主要介紹了淺談一下為什么不能使用字符流讀取非文本的二進(jìn)制文件,剛學(xué)Java的IO流部分時(shí),書(shū)上說(shuō)只能使用字節(jié)流去讀取圖片、視頻等非文本二進(jìn)制文件,不能使用字符流,否則文件會(huì)損壞,需要的朋友可以參考下
    2023-04-04
  • mybatis實(shí)現(xiàn)表與對(duì)象的關(guān)聯(lián)關(guān)系_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    mybatis實(shí)現(xiàn)表與對(duì)象的關(guān)聯(lián)關(guān)系_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了mybatis實(shí)現(xiàn)表與對(duì)象的關(guān)聯(lián)關(guān)系_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下
    2017-09-09
  • Java 8 Stream 的終極技巧——Collectors 功能與操作方法詳解

    Java 8 Stream 的終極技巧——Collectors 功能與操作方法詳解

    這篇文章主要介紹了Java 8 Stream Collectors 功能與操作方法,結(jié)合實(shí)例形式詳細(xì)分析了Java 8 Stream Collectors 功能、操作方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 詳解基于redis實(shí)現(xiàn)分布式鎖

    詳解基于redis實(shí)現(xiàn)分布式鎖

    系統(tǒng)的不斷擴(kuò)大,分布式鎖是最基本的保障。與單機(jī)的多線程不一樣的是,分布式跨多個(gè)機(jī)器。線程的共享變量無(wú)法跨機(jī)器。本文將介紹基于redis實(shí)現(xiàn)分布式鎖。
    2021-06-06
  • java gui實(shí)現(xiàn)計(jì)算器小程序

    java gui實(shí)現(xiàn)計(jì)算器小程序

    這篇文章主要為大家詳細(xì)介紹了java gui實(shí)現(xiàn)計(jì)算器小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 解決maven加載依賴時(shí)遇到的問(wèn)題

    解決maven加載依賴時(shí)遇到的問(wèn)題

    這篇文章主要介紹了解決maven加載依賴時(shí)遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • hystrix服務(wù)降級(jí)方法使用介紹

    hystrix服務(wù)降級(jí)方法使用介紹

    什么是服務(wù)降級(jí)?當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)實(shí)際業(yè)務(wù)情況及流量,對(duì)一些服務(wù)和頁(yè)面有策略的不處理或換種簡(jiǎn)單的方式處理,從而釋放服務(wù)器資源以保證核心交易正常運(yùn)作或高效運(yùn)作
    2022-09-09

最新評(píng)論