Spring cloud netflix - Eureka - Как включить CORS

Я пытаюсь включить CORS на сервере Spring Cloud Eureka, следуя коду, но, похоже, он не работает.

@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class EurekaApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(EurekaApplication.class, args);
    }

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*");
            }
        };
    }
}

person Ray    schedule 23.02.2017    source источник


Ответы (1)


Я не знаю, зачем вам это нужно в Eureka, но у меня есть этот код на моем сервере ZUUL, также известном как APIGateway, в классе, аннотированном @EnableZuulProxy. Немного похоже на то, что у вас есть, но я использую CorsFilter вместо WebMVCConfigurer, вы можете попробовать и посмотреть, поможет ли это вам.

@Bean
public CorsFilter corsFilter() {
    final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    final CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("*");
    config.addAllowedHeader("*");
    config.addAllowedMethod("OPTIONS");
    config.addAllowedMethod("GET");
    config.addAllowedMethod("PUT");
    config.addAllowedMethod("POST");
    config.addAllowedMethod("DELETE");
  ;
    source.registerCorsConfiguration("/**", config);
    return new CorsFilter(source);
}
person Grinish Nepal    schedule 24.02.2017
comment
Спасибо Гриниш. Это именно то, что я сделал, чтобы решить мою проблему. В конце концов мы представили Зуула, и, похоже, Эврику нельзя выставлять напоказ снаружи. - person Ray; 10.03.2017