使用 Spring Boot Spring Security 處理 CORS
將 Spring Boot 與 Spring Security 和 CORS 支援結合使用時,可能會出現意外行為。預設情況下,CORS 預檢請求可能會在到達 Spring MVC 之前被 Spring Security 阻止。
設定選項:
要解決此問題,請在Spring Security 中明確啟用CORS 支援:將以下程式碼新增至HttpSecurity 配置:
@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors().and()... } }
全局CORS配置:
或者,您可以透過聲明CorsConfigurationSource bean 來定義全域CORS 配置:
@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors().and()... } @Bean CorsConfigurationSource corsConfigurationSource() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues()); return source; } }
解決CORS 問題
解決CORS 問題已知問題和解決方法如果這些配置無法解決問題,請考慮以下解決方法:[Github問題5834](https ://github.com/spring-projects/spring-boot/issues/5834) 提供了一個潛在的解決方案。
以上是如何使用 Spring Boot 和 Spring Security 正確配置 CORS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!