diff --git a/usergw-service/pom.xml b/usergw-service/pom.xml
index ce71062..83b8ba4 100644
--- a/usergw-service/pom.xml
+++ b/usergw-service/pom.xml
@@ -52,18 +52,18 @@
org.springframework.cloud
spring-cloud-starter-gateway
-
+
org.yaml
snakeyaml
- 1.21
+ 1.21
-
+
- com.alibaba
- fastjson
- 1.2.58
-
+ com.alibaba
+ fastjson
+ 1.2.58
+
cn.ecpark.service
@@ -91,7 +91,33 @@
maven-source-plugin
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.4
+
+
+
+ prepare-agent
+
+
+
+
+ report
+ test
+
+ report
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/usergw-service/src/main/java/cn/ecpark/service/usergw/biz/filters/factory/DubboGatewayFilterFactory.java b/usergw-service/src/main/java/cn/ecpark/service/usergw/biz/filters/factory/DubboGatewayFilterFactory.java
index d72849c..5d914e1 100644
--- a/usergw-service/src/main/java/cn/ecpark/service/usergw/biz/filters/factory/DubboGatewayFilterFactory.java
+++ b/usergw-service/src/main/java/cn/ecpark/service/usergw/biz/filters/factory/DubboGatewayFilterFactory.java
@@ -12,7 +12,10 @@ import org.apache.dubbo.rpc.service.GenericService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
+import org.springframework.cloud.gateway.filter.factory.SetStatusGatewayFilterFactory;
import org.springframework.context.ApplicationContext;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
@@ -65,7 +68,7 @@ public class DubboGatewayFilterFactory extends AbstractGatewayFilterFactory reference = new ReferenceConfig();
reference.setConnections(3);
diff --git a/usergw-service/src/main/resources/test-gateway.yaml b/usergw-service/src/main/resources/test-gateway.yaml
index 7e9c5b4..3ecb970 100644
--- a/usergw-service/src/main/resources/test-gateway.yaml
+++ b/usergw-service/src/main/resources/test-gateway.yaml
@@ -48,4 +48,5 @@ dubbo:
version: 1.0.0
predicates:
- Path=/dubbo/hello
+
\ No newline at end of file
diff --git a/usergw-service/src/main/resources/test-gateway2.yaml b/usergw-service/src/main/resources/test-gateway2.yaml
new file mode 100644
index 0000000..f0da5be
--- /dev/null
+++ b/usergw-service/src/main/resources/test-gateway2.yaml
@@ -0,0 +1,63 @@
+default-filters:
+ - AddResponseHeader=X-Response-Default-Foo, Test-Default-Bar
+
+restful:
+ routes:
+ - id: path_route
+ uri: http://httpbin.org:80/*
+ order: 9
+ predicates:
+ - Path=/get
+ - Header=XX, \d+
+
+ - id: path_route12;
+ uri: http://httpbin.org:80/*
+ order: 9
+ predicates:
+ - Path=/get
+ - Header=XX, \d+
+
+ - id: path_route13
+ uri: http://httpbin.org:80/*
+ order: 9
+ predicates:
+ - Path=/get
+ - Header=XX, \d+
+ # - id: redirect_to
+ # uri: http://localhost/test/**
+ # order: 11
+ # filters:
+ # - RedirectTo=302, http://httpbin.org:80/get
+
+dubbo:
+ routes:
+ - id: test
+ order: 10
+ application: dubbo-exchange
+ methods: # 如果没填就从 request拿 意味着所有接口都可以使用
+ - name: Say
+ param-types:
+ - java.lang.String
+ group: test
+ interface: ocean.demo.api.IExchange
+ version: 1.0.0
+ predicates:
+ - Path=/dubbo/hello
+ filters:
+ - SetRequestHeader=params, SetHeader
+
+ - id: test2
+ order: 0
+ application: dubbo-exchange
+ methods: # 如果没填就从 request拿 意味着所有接口都可以使用
+ - name: Hello
+ group: test
+ # registry: zookeeper://127.0.0.1:2181
+ interface: ocean.demo.api.IExchange
+ version: 1.0.0
+ predicates:
+ - Path=/dubbo/hello
+ filters:
+ - SetStatus=404
+
+
\ No newline at end of file
diff --git a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig.java b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig.java
index 0125faf..7d24681 100644
--- a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig.java
+++ b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig.java
@@ -20,7 +20,6 @@ import reactor.netty.http.client.HttpClientResponse;
@SpringBootTest(classes= App.class, webEnvironment = WebEnvironment.RANDOM_PORT)
@RunWith(SpringRunner.class)
@TestPropertySource(locations = {"application.properties"})
-
public class TestHttp2DubboConfig {
@LocalServerPort
diff --git a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig2.java b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig2.java
new file mode 100644
index 0000000..6cc5996
--- /dev/null
+++ b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestHttp2DubboConfig2.java
@@ -0,0 +1,58 @@
+package cn.ecpark.service.usergw.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import cn.ecpark.service.usergw.App;
+import reactor.core.publisher.Mono;
+import reactor.netty.http.client.HttpClient;
+import reactor.netty.http.client.HttpClient.ResponseReceiver;
+import reactor.netty.http.client.HttpClientResponse;
+
+// TODO: 添加附加Dubbo Service for Test启动进程
+@SpringBootTest(classes = App.class, webEnvironment = WebEnvironment.RANDOM_PORT)
+@RunWith(SpringRunner.class)
+@TestPropertySource(locations = { "application2.properties" })
+public class TestHttp2DubboConfig2 {
+
+ @LocalServerPort
+ private int serverPort;
+
+ @Test
+ public void Test2RequestHttp2DubboSetHeader() {
+
+ // Test Base Url
+ HttpClient client = HttpClient.create();
+ ResponseReceiver> receiver;
+ String content;
+ // receiver = client.baseUrl("http://localhost:" + serverPort + "/dubbo/hello").headers(
+ // h -> h.set("method", "Say").add("param-types", "java.lang.String").add("params", "Test-MyHttp2dubbo"))
+ // .get();
+
+ // HttpClientResponse resp = receiver.response().block();
+ // Assert.assertNotNull(resp);
+
+ // content = receiver.responseContent().asString().blockLast();
+ // Assert.assertEquals(resp.status().code(), 200);
+ // Assert.assertNotNull(content);
+ // Assert.assertEquals(content, "SetHeader");
+
+ receiver = client.baseUrl("http://localhost:" + serverPort + "/dubbo/hello")
+ .headers(h -> h.set("method", "Hello")).get();
+ HttpClientResponse response = receiver.response().block();
+
+ Assert.assertNotNull(response);
+ Assert.assertEquals(response.status().code(), 404);
+
+ content = receiver.responseContent().asString().blockLast();
+ Assert.assertNull(content);
+ }
+
+
+}
\ No newline at end of file
diff --git a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestYaml.java b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestYaml.java
index 7fac6a2..4e4880b 100644
--- a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestYaml.java
+++ b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/TestYaml.java
@@ -8,10 +8,8 @@ import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
-import org.springframework.boot.test.context.TestComponent;
import org.yaml.snakeyaml.Yaml;
-@TestComponent
public class TestYaml {
@SuppressWarnings("unchecked")
@Test
diff --git a/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/application2.properties b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/application2.properties
new file mode 100644
index 0000000..592aa8c
--- /dev/null
+++ b/usergw-service/src/test/java/cn/ecpark/service/usergw/utils/application2.properties
@@ -0,0 +1,15 @@
+
+spring.application.name=gateway
+dubbo.scan.base-packages=cn.ecpark.service.usergw.impl
+dubbo.protocol.name=dubbo
+dubbo.protocol.port=20999
+dubbo.registry.address=zookeeper://127.0.0.1:2181
+dubbo.config-center.address=zookeeper://127.0.0.1:2181
+dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
+server.port=8888
+
+# logging.level.org.springframework.cloud.gateway=debug
+logging.file=logs/log
+
+yame.config=test-gateway2.yaml
+