From 9ef8deea0427e03cf5ed8932462c213d3572fbe7 Mon Sep 17 00:00:00 2001 From: Vlad Rosu Date: Fri, 6 Mar 2020 10:20:21 +0200 Subject: [PATCH] Fix for namespace not being propagated on Auth schemes (except Token) --- .../vault/SpringVaultClientConfiguration.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfiguration.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfiguration.java index 635239e4..fce2524e 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfiguration.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfiguration.java @@ -96,9 +96,7 @@ public class SpringVaultClientConfiguration extends AbstractVaultConfiguration { endpointProvider, requestFactory); if (vaultProperties.getNamespace() != null) { - restTemplateBuilder.customizers( - restTemplate -> restTemplate.getInterceptors().add(VaultClients - .createNamespaceInterceptor(vaultProperties.getNamespace()))); + restTemplateBuilder.customizers(this::applyNamespaceInterceptor); } return restTemplateBuilder; @@ -125,6 +123,13 @@ public class SpringVaultClientConfiguration extends AbstractVaultConfiguration { return new SslConfiguration(keyStoreConfiguration, trustStoreConfiguration); } + @Override + public RestOperations restOperations() { + RestTemplate restOperations = (RestTemplate) super.restOperations(); + applyNamespaceInterceptor(restOperations); + return restOperations; + } + private SslConfiguration.KeyStoreConfiguration getKeyStoreConfiguration( Resource resourceProperty, String passwordProperty) { @@ -140,6 +145,15 @@ public class SpringVaultClientConfiguration extends AbstractVaultConfiguration { return SslConfiguration.KeyStoreConfiguration.of(resourceProperty); } + private RestOperations applyNamespaceInterceptor(RestTemplate restTemplate) { + if (vaultProperties.getNamespace() != null) { + restTemplate.getInterceptors().add(VaultClients + .createNamespaceInterceptor(vaultProperties.getNamespace())); + } + + return restTemplate; + } + /** * @return a new {@link ClientAuthentication}. */