У меня есть несколько микросервисов за микросервисом, действующим как прокси-сервер zuul.
При вызове извне домена микросервисы возвращают «403-Invalid Cors».
Это решается добавлениемпосле каждый микросервис:
@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!Это должно быть сделано с помощью этого, и микросервисы должны фактически возвращать эту ошибку при непосредственном вызове.
Итак, я перенес ту же самую конфигурацию только на свой микросервис zuul , вот она, кстати:
@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 - Invalid Cors"!Что я делаю неправильно?Я полагаю, это происходит потому, что прокси-сервер zuul на самом деле ничего не делает, кроме как для пересылки запроса ... но как настроить его так, чтобы MS-получатель заметил, что запрос поступил от zuul в той же сети и, таким образом, разрешил его?