错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.
翻译:
IllegalArgumentException:当allowCredentials为真时,allowedorigin不能包含特殊值“*”,因为它不能在“访问-控制-允许-起源”响应头中设置。
解决办法:
把 注解当中的 origins 替换为originPatterns
@Configuration
public class CoreConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.exposedHeaders("Authorization,Link,X-Total-Count")
.allowedMethods("GET", "POST", "DELETE","OPTIONS" )
.maxAge(3600);
}
};
}
}
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable().antMatcher("/");
}
}
@CrossOrigin(originPatterns = "*", maxAge = 3600)