diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java index 6f7adac23..6353a023e 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java @@ -117,6 +117,9 @@ static String getUrl(String url) { if (!url.contains("://")) { url = "http://" + url; } + if (url.endsWith("/")) { + url = url.substring(0, url.length() - 1); + } try { new URL(url); } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java index 9a212a5a5..bf21f7f28 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java @@ -128,7 +128,7 @@ void forType_allFieldsSetOnBuilder() { assertFactoryBeanField(builder, "contextId", "TestContext"); // and: - assertFactoryBeanField(builder, "url", "http://Url/"); + assertFactoryBeanField(builder, "url", "http://Url"); assertFactoryBeanField(builder, "path", "/Path"); assertFactoryBeanField(builder, "dismiss404", true); @@ -148,7 +148,7 @@ void forType_clientFactoryBeanProvided() { assertFactoryBeanField(builder, "contextId", "TestContext"); // and: - assertFactoryBeanField(builder, "url", "http://Url/"); + assertFactoryBeanField(builder, "url", "http://Url"); assertFactoryBeanField(builder, "path", "/Path"); assertFactoryBeanField(builder, "dismiss404", true); List additionalCustomizers = getFactoryBeanField(builder, "additionalCustomizers"); diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java index 0d2982928..ba536fcb7 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java @@ -89,6 +89,12 @@ private String testGetName(String name) { return registrar.getName(Collections.singletonMap("name", name)); } + @Test + void removeLastSlashOfUrl() { + String url = FeignClientsRegistrar.getUrl("http://localhost/"); + assertThat(url).isEqualTo("http://localhost"); + } + @Test void testFallback() { assertThatExceptionOfType(IllegalArgumentException.class)