From 0ce54d546e5e6ea4869fdbe965424a32eee6a92b Mon Sep 17 00:00:00 2001 From: asite-rreval Date: Mon, 1 Jul 2019 16:18:52 +0530 Subject: [PATCH 1/2] Avoided url appending with slash when matrix parameter exists --- core/src/main/java/feign/RequestTemplate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/feign/RequestTemplate.java b/core/src/main/java/feign/RequestTemplate.java index fdda85068e..88215c7dd8 100644 --- a/core/src/main/java/feign/RequestTemplate.java +++ b/core/src/main/java/feign/RequestTemplate.java @@ -406,7 +406,7 @@ public RequestTemplate uri(String uri, boolean append) { if (uri == null) { uri = "/"; } else if ((!uri.isEmpty() && !uri.startsWith("/") && !uri.startsWith("{") - && !uri.startsWith("?"))) { + && !uri.startsWith("?") && !uri.startsWith(";"))) { /* if the start of the url is a literal, it must begin with a slash. */ uri = "/" + uri; } From bd2db88ed3286ba448e839eb8b70511af5b3f807 Mon Sep 17 00:00:00 2001 From: asite-rreval Date: Wed, 10 Jul 2019 14:24:14 +0530 Subject: [PATCH 2/2] Added UT to cover url appending with slash when matrix parameter exists --- core/src/test/java/feign/RequestTemplateTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/src/test/java/feign/RequestTemplateTest.java b/core/src/test/java/feign/RequestTemplateTest.java index d69b066aa0..b0fe6d9115 100644 --- a/core/src/test/java/feign/RequestTemplateTest.java +++ b/core/src/test/java/feign/RequestTemplateTest.java @@ -469,4 +469,13 @@ public void fragmentShouldNotBeEncodedInTarget() { assertThat(template.url()).isEqualTo("https://example.com/path?key1=value1#fragment"); } + + @Test + public void slashShouldNotBeAppendedForMatrixParams(){ + RequestTemplate template = new RequestTemplate().method(HttpMethod.GET) + .uri("/path;key1=value1;key2=value2",true); + + assertThat(template.url()).isEqualTo("/path;key1=value1;key2=value2"); + + } }