ホームページ >Java >&#&チュートリアル >Spring Security の「401 No \'Access-Control-Allow-Origin\' ヘッダー」エラーを修正する方法?

Spring Security の「401 No \'Access-Control-Allow-Origin\' ヘッダー」エラーを修正する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 16:08:02700ブラウズ

How to Fix the

Spring Security CORS フィルター

問題

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;
    }
}

間違った解決策

次の誤った解決策の使用は避けてください:

  • http.authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/**").permitAll();
  • web。 ignore().antMatchers(HttpMethod.OPTIONS);

以上がSpring Security の「401 No 'Access-Control-Allow-Origin' ヘッダー」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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