Heim > Java > javaLernprogramm > Hauptteil

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

Patricia Arquette
Freigeben: 2024-10-31 16:08:02
Original
660 Leute haben es durchsucht

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");
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage