ホームページ >ウェブフロントエンド >jsチュートリアル >Spring Security を使用して Spring Boot で CORS を適切に構成する方法

Spring Security を使用して Spring Boot で CORS を適切に構成する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 00:17:10336ブラウズ

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

Spring Boot および Spring Security での CORS 構成

CORS をサポートしながら Spring Boot および Spring Security を使用すると、特定の構成の問題が発生し、予期しない結果につながる可能性があります。

このような問題の 1 つは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。