1. 程式人生 > 程式設計 >spring Cloud微服務跨域實現步驟

spring Cloud微服務跨域實現步驟

這篇文章主要介紹了spring Cloud微服務跨域實現步驟,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

第一步:在gateway閘道器的配置檔案中加上下面這些:

ly:
 cors:
  allowedOrigins:
   - http://manage.leyou.com
  - http://xxx.xxx.com
# 允許哪些網址就繼續加,不要寫 *,否則cookie就無法使用了
  allowedCredentials: true    # 代表攜帶cookie
  allowedHeaders:
   - "*"
  allowedMethods:
   - GET
   - POST
   - DELETE
   - PUT
   - OPTIONS
   - HEAD
  maxAge: 360000
  filterPath: "/**"

第二步:寫一個配置類解析上面的配置檔案資訊

@Data
@ConfigurationProperties(prefix = "ly.cors")
public class CORSProperties {
	private List<String> allowedOrigins;
	private Boolean allowedCredentials;
	private List<String> allowedMethods;
	private List<String> allowedHeaders;
	private long maxAge;
	private String filterPath;
}

第三步:寫一個跨域的過濾器

@Configuration
@EnableConfigurationProperties(CORSProperties.class)
public class GlobalCORSConfig {
	@Autowired
	  private CORSProperties prop;
	/**
   * @Bean註解,將當前方法的返回值物件放入到IOC容器中
   * @return
   */
	@Bean
	  public CorsFilter corsFilter() {
		//1.新增CORS配置資訊
		CorsConfiguration config = new CorsConfiguration();
		prop.getAllowedOrigins().forEach(config::addAllowedOrigin);
		//上面的寫法和下面這個效果一樣
		//    for (String allowedOrigin : prop.getAllowedOrigins()) {
		//      config.addAllowedOrigin(allowedOrigin);
		//    }
		//2) 是否傳送Cookie資訊
		config.setAllowCredentials(prop.getAllowedCredentials());
		//3) 允許的請求方式
		prop.getAllowedMethods().forEach(config::addAllowedMethod);
		// 4)允許的頭資訊
		prop.getAllowedHeaders().forEach(config::addAllowedHeader);
		// 5)有效期
		config.setMaxAge(prop.getMaxAge());
		//2.新增對映路徑,我們攔截一切請求
		UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
		configSource.registerCorsConfiguration(prop.getFilterPath(),config);
		//3.返回新的CORSFilter.
		return new CorsFilter(configSource);
	}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。