您好,登錄后才能下訂單哦!
這篇文章主要介紹了Spring Security的過濾器鏈機制是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Spring Security的過濾器鏈機制是什么文章都會有所收獲,下面我們一起來看看吧。
使用@Configuration
配置了一個SecurityFilterChain
Bean,能在Spring Boot 啟動的時候創建SecurityFilterChain Bean到Sping。
@Configuration public class OAuth3LoginConfig @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(authorize -> authorize .anyRequest().authenticated() ) .oauth3Login(withDefaults()); return http.build(); }
這是官網的配置,說明任何請求都可以通過OAuth3來登錄。上面說過任何請求都會經過SecurityFilterChain 的matches
方法,因此我們可以在SecurityFilterChain 的唯一實現類DefaultSecurityFilterChain
的matches
方法中打上斷點(圖1),這樣當進入斷點的時候,可以直觀的從IDE中看到調用棧
,這是調式源碼的時候一個非常有用的方法。
圖1
啟動應用,請求一個接口localhost:8080/hello,進入端點后的調用棧如圖:
圖2
圖中箭頭所指的DelegatingFilterProxy
為Spring提供的一個標準的Servlet Filter代理,在xml的Spring時代,為了能使用Spring Security,需要在web.xml中添加該過濾器,而在Spring Boot中,Spring Boot的自動配置已經幫我們搞定,具體可見SecurityFilterAutoConfiguration
。
箭頭前面一部分是其他的幾個Servlet Filter,我們不做了解。
箭頭后面的部分,即DelegatingFilterProxy
之后,依次執行了FilterChainProxy
和DefaultSecurityFilterChain
FilterChainProxy
是一個過濾器鏈代理類,內部保存了過濾器鏈列表,而過濾器鏈內部又具有各種過濾器
,如圖3。DefaultSecurityFilterChain
是SecurityFilterChain的默認實現
到此為止,我們的第一個問題“請求執行鏈路”基本已經清晰了,即DelegatingFilterProxy >> FilterChainProxy >> SecurityFilterChain >> Filter
關于“Spring Security的過濾器鏈機制是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Spring Security的過濾器鏈機制是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。