首頁 > web前端 > js教程 > 如何使用 Spring Security 在 Spring Boot 中正確設定 CORS?

如何使用 Spring Security 在 Spring Boot 中正確設定 CORS?

Linda Hamilton
發布: 2024-11-27 00:17:10
原創
342 人瀏覽過

How to Properly Configure CORS in Spring Boot with Spring Security?

Spring Boot 和Spring Security 中的CORS 配置

在支援CORS 的同時使用Spring Boot 和Spring Security 時,可能會出現某些配置問題,從而導致意外結果。

使用 XMLHttpRequest 發出 GET 請求並使用 CORS 支援時會遇到這樣的問題,儘管驗證憑證不正確,但仍傳回 200 狀態碼。此行為會導致前端處理 HTTP 狀態碼時出現差異。

解決方案

要解決此問題,在 Spring Security 中明確啟用 CORS 支援至關重要。這是透過在 Spring Security 中設定 CORS 來實現的,這使其能夠利用 Spring MVC CORS 配置。

對於在控制器層級使用 @CrossOrigin 註釋的應用程序,只需啟用 Spring Security CORS 支援就足夠了。下面的程式碼示範了這一點:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()...
    }
}
登入後複製

對於選擇全域 CORS 配置的用戶,有必要定義一個 CorsConfigurationSource bean。

@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在 Spring Boot 和 Spring Security 中啟用,解決了身份驗證檢查期間未添加正確的 CORS 標頭的問題。有關更多詳細信息,請參閱有關 CORS 的 Spring Security 官方文件。

以上是如何使用 Spring Security 在 Spring Boot 中正確設定 CORS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板