Heim  >  Artikel  >  Java  >  Wie behebe ich den Fehler „401 No \'Access-Control-Allow-Origin\' Header' in Spring Security?

Wie behebe ich den Fehler „401 No \'Access-Control-Allow-Origin\' Header' in Spring Security?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 16:08:02661Durchsuche

How to Fix the

Spring Security CORS-Filter

Problem

Wenn Spring Security zu einem vorhandenen Projekt hinzugefügt wird, wird ein „401 No ‚Access-Control-Allow-“ angezeigt. Es ist ein Fehler aufgetreten, bei dem der Origin-Header auf der angeforderten Ressource vorhanden ist. Dies liegt daran, dass der Antwort kein Access-Control-Allow-Origin-Header hinzugefügt wird.

Lösung

Um dieses Problem zu beheben, ist seit Spring Security 4.1 die richtige Möglichkeit, die CORS-Unterstützung zu aktivieren wie folgt:

In WebConfig:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH");
    }
}

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

Falsche Lösungen

Vermeiden Sie die Verwendung der folgenden falschen Lösungen:

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

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „401 No \'Access-Control-Allow-Origin\' Header' in Spring Security?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn