SpringSecurity實(shí)現(xiàn)訪問控制url匹配
一、訪問控制url匹配
在前面講解了認(rèn)證中所有常用配置,主要是對(duì)http.formLogin()進(jìn)行操作。而在配置類中 http.authorizeRequests()主要是對(duì)url進(jìn)行控制,也就是我們所說的授權(quán)(訪問控制)。http.authorizeRequests()也支持連綴寫法,總體公式為:
url匹配規(guī)則.權(quán)限控制方法
通過上面的公式可以有很多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)證過程中我們就已經(jīng)使用過anyRequest(),表示匹配所有的請(qǐng)求。一般情況下此方法都會(huì)使用,設(shè)置全部內(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í)使用方式
無論是antMatchers()還是regexMatchers()都具有兩個(gè)參數(shù)的方法,其中第一個(gè)參數(shù)都是HttpMethod,表示請(qǐng)求方式,當(dāng)設(shè)置了HttpMethod后表示只有設(shè)定的特定的請(qǐng)求方式才執(zhí)行對(duì)應(yīng)的權(quán)限設(shè)置。
枚舉類型HttpMethod內(nèi)置屬性如下:
到此這篇關(guān)于SpringSecurity實(shí)現(xiàn)訪問控制url匹配的文章就介紹到這了,更多相關(guān)SpringSecurity實(shí)現(xiàn)訪問控制url匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析如何用兩個(gè)棧來實(shí)現(xiàn)隊(duì)列的方法
本篇文章是對(duì)如何用兩個(gè)棧實(shí)現(xiàn)隊(duì)列的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Java實(shí)現(xiàn)bmp和jpeg圖片格式互轉(zhuǎn)
本文主要介紹了Java實(shí)現(xiàn)bmp和jpeg圖片格式互轉(zhuǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04SpringBoot靜態(tài)資源CSS等修改后再運(yùn)行無效的解決
這篇文章主要介紹了SpringBoot靜態(tài)資源CSS等修改后再運(yùn)行無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12java連接postgresql數(shù)據(jù)庫代碼及maven配置方式
這篇文章主要介紹了java連接postgresql數(shù)據(jù)庫代碼及maven配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09SpringBoot詳細(xì)講解如何創(chuàng)建及刷新Spring容器bean
前面看spring源碼時(shí)可以發(fā)現(xiàn)refresh()方法十分重要。在這個(gè)方法中會(huì)加載beanDefinition,同時(shí)創(chuàng)建bean對(duì)象。那么在springboot中有沒有使用這個(gè)refresh()方法呢2022-06-06