Bläddra i källkod

修改线上gateway配置文件

songyh 4 år sedan
förälder
incheckning
80be5c6a65

+ 16 - 0
jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/CorsFilterCondition.java

@@ -0,0 +1,16 @@
+package org.jeecg.config;
+
+import org.springframework.context.annotation.Condition;
+import org.springframework.context.annotation.ConditionContext;
+import org.springframework.core.type.AnnotatedTypeMetadata;
+
+/**
+ * 跨域配置加载条件
+ */
+public class CorsFilterCondition implements Condition {
+
+    @Override
+    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
+        return true;
+    }
+}

+ 20 - 0
jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/GatewayRoutersConfiguration.java

@@ -5,8 +5,12 @@ import org.jeecg.handler.HystrixFallbackHandler;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
 import org.springframework.web.reactive.function.server.RequestPredicates;
 import org.springframework.web.reactive.function.server.RouterFunction;
 import org.springframework.web.reactive.function.server.RouterFunctions;
@@ -78,6 +82,22 @@ public class GatewayRoutersConfiguration {
         PASSWORD = password;
     }
 
+    @Bean
+    @Conditional(CorsFilterCondition.class)
+    public CorsFilter corsFilter() {
+        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
+        final CorsConfiguration corsConfiguration = new CorsConfiguration();
+        //是否允许请求带有验证信息
+        corsConfiguration.setAllowCredentials(true);
+        // 允许访问的客户端域名
+        corsConfiguration.addAllowedOrigin("*");
+        // 允许服务端访问的客户端请求头
+        corsConfiguration.addAllowedHeader("*");
+        // 允许访问的方法名,GET POST等
+        corsConfiguration.addAllowedMethod("*");
+        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
+        return new CorsFilter(urlBasedCorsConfigurationSource);
+    }
 
     /**
      * 路由断言