Spring Security を既存のプロジェクトに追加すると、「401 No 'Access-Control-Allow-」 「Origin' ヘッダーが要求されたリソースに存在します」というエラーが発生します。これは、Access-Control-Allow-Origin ヘッダーが応答に追加されていないために発生します。
この問題を解決するには、Spring Security 4.1 以降、CORS サポートを有効にする適切な方法は次のとおりです。次のように:
WebConfig 内:
@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH"); } }
SecurityConfig 内:
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { // http.csrf().disable(); 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; } }
次の誤った解決策の使用は避けてください:
以上がSpring Security の「401 No \'Access-Control-Allow-Origin\' ヘッダー」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。