在使用Spring 3.0.2 配置Spring Resource Server时遇到CORS问题,现在总结一下。
在使用Spring Resource Server时,必须使用HttpSecurity中的cors显示启动跨域访问支持,否则控制器上的@CrossOrigin()标签不起作用。如果希望在全局配置跨域访问支持或者不希望在控制器中引用@CrossOrigin标签,需要定义bean如下:
@Bean
public CorsConfigurationSource corsConfigurationSource()
{
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("http://host.docker.internal:5002"));
configuration.setAllowedMethods(Arrays.asList("GET","POST"));
configuration.setAllowCredentials(true);
configuration.addAllowedHeader("Authorization");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
网友评论