2017-02-23 50 views
1

我试图通过以下代码在Spring Cloud Eureka服务器中启用CORS,但它似乎不起作用。Spring cloud netflix - Eureka - 如何启用CORS

@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("*"); 
      } 
     }; 
    } 
} 

回答

2

我不知道你为什么会需要这个尤里卡,但我有这样的代码在我ZUUL服务器AKA APIGateway与@EnableZuulProxy注释的类。 Littel与您拥有的类似,但我使用的是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); 
} 
+2

谢谢咧嘴笑。这正是我为解决我的问题所做的。我们最终介绍了Zuul,似乎Eureka不应该暴露在外面。 – Ray

相关问题