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!

推薦閱讀: