天天看點

從零開始搭建微服務:跨域處理

前後分離架構下肯定會遇到跨域的問題,因為我們的請求都是通過微服務網關來轉發的,是以我們可以在網關處統一處理跨域。

ElsaGateWayCorsConfigure

在elsa-gateway子產品下的com.elsa.gateway.configure子產品下建立ElsaGateWayCorsConfigure配置類:

@Configuration
public class ElsaGateWayCorsConfigure {
	@Bean
	public CorsFilter corsFilter() {
		final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		final CorsConfiguration corsConfiguration = new CorsConfiguration();
		corsConfiguration.setAllowCredentials(true);
		corsConfiguration.addAllowedHeader(CorsConfiguration.ALL);
		corsConfiguration.addAllowedOrigin(CorsConfiguration.ALL);
		corsConfiguration.addAllowedMethod(CorsConfiguration.ALL);
		source.registerCorsConfiguration("/**", corsConfiguration);
		return new CorsFilter(source);
	}
}

           

該配置類裡注冊了CorsFilter:

  • setAllowCredentials(true)表示允許cookie跨域;
  • addAllowedHeader(CorsConfiguration.ALL)表示請求頭部允許攜帶任何内容;
  • addAllowedOrigin(CorsConfiguration.ALL)表示允許任何來源;
  • addAllowedMethod(CorsConfiguration.ALL)表示允許任何HTTP方法。

源碼下載下傳

源碼位址:跨域處理

繼續閱讀