spring Cloud微服務跨域實現步驟
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了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); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。