Spring Security CORS-Filter: Fehlerbehebung „Es ist kein ‚Access-Control-Allow-Origin‘-Header vorhanden“
Erklärung
Das Hinzufügen von Spring Security zu einem vorhandenen Projekt kann bei CORS-Anfragen (Cross-Origin Resource Sharing) den Fehler „Kein ‚Access-Control-Allow-Origin‘-Header vorhanden“ auslösen. Dieser Fehler tritt auf, weil der Access-Control-Allow-Origin-Antwortheader nicht zu Anfragen hinzugefügt wird.
Lösung
Methode 1:
Aktualisieren Sie Ihren Code, um die integrierte CORS-Unterstützung von Spring Security zu nutzen. Fügen Sie Ihrer Anwendung die folgende Konfiguration hinzu:
<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>
Methode 2:
Wenn Sie mehr Kontrolle über die CORS-Konfiguration wünschen, verwenden Sie den folgenden Ansatz:
<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>
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich nach dem Hinzufügen von Spring Security die Fehlermeldung „Kein Header „Access-Control-Allow-Origin' vorhanden''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!