From f9e55b5d8a4cd2370ece9affe0994357acb194b5 Mon Sep 17 00:00:00 2001 From: birariro Date: Fri, 21 Jun 2024 13:27:36 +0900 Subject: [PATCH] fix: remove last slash of url --- .../cloud/openfeign/FeignClientsRegistrar.java | 3 +++ .../cloud/openfeign/FeignClientBuilderTests.java | 4 ++-- .../cloud/openfeign/FeignClientsRegistrarTests.java | 6 ++++++ 3 files changed, 11 insertions(+), 2 deletions(-) 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 03149a51..00fe8f19 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 @@ -118,6 +118,9 @@ class FeignClientsRegistrar implements ImportBeanDefinitionRegistrar, ResourceLo 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 4f876c4d..67a9e85b 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 @@ -131,7 +131,7 @@ class FeignClientBuilderTests { assertFactoryBeanField(builder, "contextId", "TestContext"); // and: - assertFactoryBeanField(builder, "url", "http://Url/"); + assertFactoryBeanField(builder, "url", "http://Url"); assertFactoryBeanField(builder, "path", "/Path"); assertFactoryBeanField(builder, "dismiss404", true); @@ -155,7 +155,7 @@ class FeignClientBuilderTests { 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 07f5a25b..e9832691 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 @@ class FeignClientsRegistrarTests { 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)