SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配
一、訪問(wèn)控制url匹配
在前面講解了認(rèn)證中所有常用配置,主要是對(duì)http.formLogin()進(jìn)行操作。而在配置類(lèi)中 http.authorizeRequests()主要是對(duì)url進(jìn)行控制,也就是我們所說(shuō)的授權(quán)(訪問(wèn)控制)。http.authorizeRequests()也支持連綴寫(xiě)法,總體公式為:
url匹配規(guī)則.權(quán)限控制方法
通過(guò)上面的公式可以有很多url匹配規(guī)則和很多權(quán)限控制方法。這些內(nèi)容進(jìn)行各種組合就形成了Spring Security中的授權(quán)。
在所有匹配規(guī)則中取所有規(guī)則的交集。配置順序影響了之后授權(quán)效果,越是具體的應(yīng)該放在前面,越是籠統(tǒng)的應(yīng)該放到后面。
1.anyRequest()
在之前認(rèn)證過(guò)程中我們就已經(jīng)使用過(guò)anyRequest(),表示匹配所有的請(qǐng)求。一般情況下此方法都會(huì)使用,設(shè)置全部?jī)?nèi)容都需要進(jìn)行認(rèn)證。
代碼示例:
anyRequest().authenticated();
2.antMatcher()
? 方法定義如下:
public C antMatchers(String... antPatterns)
參數(shù)是不定向參數(shù),每個(gè)參數(shù)是一個(gè)ant表達(dá)式,用于匹配URL規(guī)則。
規(guī)則如下:
? 匹配一個(gè)字符
- 匹配0個(gè)或多個(gè)字符
** 匹配0個(gè)或多個(gè)目錄
在實(shí)際項(xiàng)目中經(jīng)常需要放行所有靜態(tài)資源,下面演示放行js文件夾下所有腳本文件。
.antMatchers("/js/**").permitAll()還有一種配置方式是只要是.js文件都放行
antMatchers("/**/*.js").permitAll()3.regexMatchers()
3.1介紹
使用正則表達(dá)式進(jìn)行匹配。和antMatchers()主要的區(qū)別就是參數(shù),antMatchers()參數(shù)是ant表達(dá)式,regexMatchers()參數(shù)是正則表達(dá)式。
演示所有以.js結(jié)尾的文件都被放行。
.regexMatchers(".+[.]js").permitAll()3.2兩個(gè)參數(shù)時(shí)使用方式
無(wú)論是antMatchers()還是regexMatchers()都具有兩個(gè)參數(shù)的方法,其中第一個(gè)參數(shù)都是HttpMethod,表示請(qǐng)求方式,當(dāng)設(shè)置了HttpMethod后表示只有設(shè)定的特定的請(qǐng)求方式才執(zhí)行對(duì)應(yīng)的權(quán)限設(shè)置。
枚舉類(lèi)型HttpMethod內(nèi)置屬性如下:

到此這篇關(guān)于SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配的文章就介紹到這了,更多相關(guān)SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了如何使用Vue、SpringBoot和EasyExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類(lèi)型的數(shù)據(jù)
這篇文章主要介紹了SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類(lèi)型的數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
Java中的ThreadLocal與ThreadLocalMap詳解
這篇文章主要介紹了Java中的ThreadLocal與ThreadLocalMap詳解,ThreadLocal 是一個(gè)線程局部變量,其實(shí)的功用非常簡(jiǎn)單,就是為每一個(gè)使用該變量的線程都提供一個(gè)變量值的副本,是Java中一種較為特殊的線程綁定機(jī)制,需要的朋友可以參考下2023-09-09
java對(duì)象克隆實(shí)現(xiàn)方法詳解
這篇文章主要給大家介紹了關(guān)于java對(duì)象克隆實(shí)現(xiàn)的相關(guān)資料,克隆就是復(fù)制一個(gè)對(duì)象的副本,Java支持我們對(duì)一個(gè)對(duì)象進(jìn)行克隆,通常用在裝飾模式和原型模式中,需要的朋友可以參考下2023-06-06
maven無(wú)法自動(dòng)導(dǎo)入依賴(lài)jar包解決方式
有時(shí)候Maven無(wú)法自動(dòng)導(dǎo)入包是因?yàn)樵摪聪螺d到本地倉(cāng)庫(kù)中,本文就來(lái)介紹一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08

