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 サイトの他の関連記事を参照してください。