Spring Security CORS フィルター: 「「Access-Control-Allow-Origin」ヘッダーが存在しません」のトラブルシューティング
説明
既存のプロジェクトに Spring Security を追加すると、Cross-Origin Resource Sharing (CORS) リクエスト中に「'Access-Control-Allow-Origin' ヘッダーが存在しません」エラーが発生する可能性があります。このエラーは、Access-Control-Allow-Origin 応答ヘッダーがリクエストに追加されていないために発生します。
解決策
方法 1:
Spring Security の組み込み CORS サポートを使用するようにコードを更新します。次の構成をアプリケーションに追加します。
<code class="java">@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH"); } }</code>
方法 2:
CORS 構成をさらに制御したい場合は、次のアプローチを使用します。
<code class="java">@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors(); } @Bean public CorsConfigurationSource corsConfigurationSource() { final CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(ImmutableList.of("*")); configuration.setAllowedMethods(ImmutableList.of("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH")); configuration.setAllowCredentials(true); configuration.setAllowedHeaders(ImmutableList.of("Authorization", "Cache-Control", "Content-Type")); final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source; } }</code>
追加の注意:
以上がSpring Security を追加した後に「No \'Access-Control-Allow-Origin' Header is Present」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。