diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/PcfClientAuthenticationProvider.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/PcfClientAuthenticationProvider.java index 71777ac4..6555b83c 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/PcfClientAuthenticationProvider.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/PcfClientAuthenticationProvider.java @@ -20,6 +20,7 @@ import org.springframework.cloud.config.server.environment.VaultEnvironmentPrope import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties.AuthenticationMethod; import org.springframework.cloud.config.server.environment.vault.SpringVaultClientAuthenticationProvider; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import org.springframework.vault.authentication.ClientAuthentication; import org.springframework.vault.authentication.PcfAuthentication; import org.springframework.vault.authentication.PcfAuthenticationOptions; @@ -48,12 +49,32 @@ public class PcfClientAuthenticationProvider extends SpringVaultClientAuthentica if (pcfProperties.getInstanceCertificate() != null) { builder.instanceCertificate(new ResourceCredentialSupplier(pcfProperties.getInstanceCertificate())); } + else { + builder.instanceCertificate(new ResourceCredentialSupplier( + resolveEnvVariable("CF_INSTANCE_CERT"))); + } if (pcfProperties.getInstanceKey() != null) { builder.instanceKey(new ResourceCredentialSupplier(pcfProperties.getInstanceKey())); } + else { + builder.instanceKey(new ResourceCredentialSupplier( + resolveEnvVariable("CF_INSTANCE_KEY"))); + } return new PcfAuthentication(builder.build(), vaultRestOperations); } + private static String resolveEnvVariable(String name) { + + String value = System.getenv(name); + + if (StringUtils.isEmpty(value)) { + throw new IllegalStateException( + String.format("Environment variable %s not set", name)); + } + + return value; + } + }