Springcloudはzulを使用してマイクロサービスのドメイン間問題を解決する
1.構成zul注意zulドメイン間でのヘッダ情報の許可
2.注入CorsFilter
これにより、ドメイン間処理が完了しますが、最外層のサービスゲートウェイでドメイン間処理が構成されている場合、サービス自体がドメイン間処理を行うことができません.そうしないと、競合が発生することに注意してください.
zuul:
# ,
sensitive-headers: Access-Control-Allow-Origin
ignored-headers: Access-Control-Allow-Origin,H-APP-Id,Token,APPToken
2.注入CorsFilter
package com.cfh.practice.zuulserver.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
/**
* @Author: www.fhadmin.org
* @Date: 2019/9/16
* @Description: zuul
*/
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // cookies
config.addAllowedOrigin("*");// # URI,* , SpringMVC , *, Origin
config.addAllowedHeader("*");// # ,*
config.setMaxAge(18000L);// ( ), ,
config.addAllowedMethod("*");// ,*
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
これにより、ドメイン間処理が完了しますが、最外層のサービスゲートウェイでドメイン間処理が構成されている場合、サービス自体がドメイン間処理を行うことができません.そうしないと、競合が発生することに注意してください.