diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java index 7b91a2c5..67f05d82 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java @@ -207,8 +207,9 @@ public class VaultClients { } private static String toBaseUri(VaultEndpoint endpoint) { - return endpoint.getScheme() + "://" + endpoint.getHost() + ":" - + endpoint.getPort() + "/v1"; + + return String.format("%s://%s:%s/%s", endpoint.getScheme(), endpoint.getHost(), + endpoint.getPort(), endpoint.getPath()); } /** diff --git a/spring-vault-core/src/test/java/org/springframework/vault/client/VaultClientsUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/client/VaultClientsUnitTests.java index 8f58134a..8dd07fc5 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/client/VaultClientsUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/client/VaultClientsUnitTests.java @@ -81,4 +81,17 @@ public class VaultClientsUnitTests { assertThat(uri).hasScheme("https").hasHost("foo").hasPort(-1) .hasPath("/path/bar"); } + + @Test + public void shouldApplyBasepath() { + + VaultEndpoint localhost = VaultEndpoint.create("localhost", 8200); + localhost.setPath("foo/v1"); + PrefixAwareUriTemplateHandler handler = new PrefixAwareUriTemplateHandler( + () -> localhost); + + URI uri = handler.expand("/path/{bar}", "bar"); + + assertThat(uri).hasHost("localhost").hasPort(8200).hasPath("/foo/v1/path/bar"); + } }