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.
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; } }
Vermeiden Sie die Verwendung der folgenden falschen Lösungen:
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!