首页 文章

如何让zuul代理处理cors?

提问于
浏览
0

我在微服务背后有几个微服务,充当zuul代理 .

当从域外调用时,微服务返回“403-无效的Cors” .

通过将以下内容添加到 each 微服务中来解决此问题:

@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**"); //just for the sake of explaination i'm allowing everything
}
}

无论如何这是一个糟糕的设计:毕竟我有一个zuul api网关!这应该由此完成,并且微服务应该在直接调用时实际返回该错误 .

所以,我移动了相同的配置 only to my zuul microservice ,顺便提一下:

@SpringBootApplication
@EnableSwagger2
@EnableZuulProxy
@ComponentScan(basePackages = "my.base.package")
public class MyApiGateway extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return configureApplication(builder);
}
  ....

道具:

zuul:
 prefix: /api
 routes:
   my-api:
     path: /myApi/**
     url: 'http: ...'
     stripPrefix: true

问题是微服务仍然返回“403 - 无效的Cors”!我究竟做错了什么?我想这是因为zuul代理除了转发请求之外什么都没做...但是如何配置它以使目标MS注意到请求来自zuul,在同一网络上并允许它?

1 回答

相关问题