Spring Cloud gateway 跨域问题
1.在gateway模块加上跨域配置CorsWebFilter
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.setAllowCredentials(true);
config.setMaxAge(600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
配置上之后发现预检请求OPTIONS被拦截,请求失败。检查后发现是OAauth2权限认证把预检请求给拦截了,于是在权限认证管理器ReactiveAuthorizationManager给OPTIONS请求放行。