SpringCloudGateway跨域配置

在uat环境部署时遇到网关跨域问题,作者发现可能是由于CorsWebFilter优先级较低,导致验签和认证过滤器先执行。文章指出SpringCloudGateway的Filter分为WebFilter和GlobalFilter,CorsWebFilter属于WebFilter链,而跨域问题实则是前端配置的域名错误。作者提供了CORS配置的代码示例,并计划进一步研究源码。

highlight: arduino-light

今天在发布uat环境的时候,出现了网关跨域的问题。所以思考是不是因为CorsWebFilter的优先级太低了,导致先进入验签、认证等过滤器。所以在自定义的CorsWebFilter上打了断点,发现自己认知的不足。

1.SpringCloudGateway里面有2种Filter:WebFilter和GlobalFilter

2.先执行WebFilterChain再执行DefaultGatewayFilterChain

3.CorsWebFilter属于WebFilterChain,GlobalFilter属于DefaultGatewayFilterChain。

关于这一方面的源码有时间在研究,先记录一下。 至于跨域的原因是前端配置的域名错误导致的。

最后附上CorsWebFilter

```java /* * @author: claude * @date: 2022/10/13 * @description: 跨域配置 */ @Configuration public class CorsConfig {

@Bean
public CorsWebFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
    source.registerCorsConfiguration("/**", buildConfig());
    return new CorsWebFilter(source);
}

private CorsConfiguration buildConfig() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    //在生产环境上最好指定域名,以免产生跨域安全问题
    corsConfiguration.addAllowedOrigin("*");
    corsConfiguration.addAllowedHeader("*");
    corsConfiguration.addAllowedMethod("*");
    return corsConfiguration;
}

} ```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值