SpringSecurity實現訪問控制url匹配
一、訪問控制url匹配
在前面講解瞭認證中所有常用配置,主要是對http.formLogin()進行操作。而在配置類中 http.authorizeRequests()主要是對url進行控制,也就是我們所說的授權(訪問控制)。http.authorizeRequests()也支持連綴寫法,總體公式為:
url匹配規則.權限控制方法
通過上面的公式可以有很多url匹配規則和很多權限控制方法。這些內容進行各種組合就形成瞭Spring Security中的授權。
在所有匹配規則中取所有規則的交集。配置順序影響瞭之後授權效果,越是具體的應該放在前面,越是籠統的應該放到後面。
1.anyRequest()
在之前認證過程中我們就已經使用過anyRequest(),表示匹配所有的請求。一般情況下此方法都會使用,設置全部內容都需要進行認證。
代碼示例:
anyRequest().authenticated();
2.antMatcher()
方法定義如下:
public C antMatchers(String... antPatterns)
參數是不定向參數,每個參數是一個ant表達式,用於匹配URL規則。
規則如下:
-
? 匹配一個字符
-
- 匹配0個或多個字符
-
** 匹配0個或多個目錄
-
在實際項目中經常需要放行所有靜態資源,下面演示放行js文件夾下所有腳本文件。
.antMatchers("/js/**").permitAll()
還有一種配置方式是隻要是.js文件都放行
antMatchers("/**/*.js").permitAll()
3.regexMatchers()
3.1介紹
使用正則表達式進行匹配。和antMatchers()主要的區別就是參數,antMatchers()參數是ant表達式,regexMatchers()參數是正則表達式。
演示所有以.js結尾的文件都被放行。
.regexMatchers(".+[.]js").permitAll()
3.2兩個參數時使用方式
無論是antMatchers()還是regexMatchers()都具有兩個參數的方法,其中第一個參數都是HttpMethod,表示請求方式,當設置瞭HttpMethod後表示隻有設定的特定的請求方式才執行對應的權限設置。
枚舉類型HttpMethod內置屬性如下:
到此這篇關於SpringSecurity實現訪問控制url匹配的文章就介紹到這瞭,更多相關SpringSecurity實現訪問控制url匹配內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決使用security和靜態資源被攔截的問題
- Spring Boot security 默認攔截靜態資源的解決方法
- springSecurity實現簡單的登錄功能
- Spring Security系列教程之會話管理處理會話過期問題
- spring boot security設置忽略地址不生效的解決