CF Auth issue with Instance certificate issue expiry for 2.2.x (#1713)

* Update PcfClientAuthenticationProvider.java

Removing CF Cert Cache. https://github.com/spring-cloud/spring-cloud-config/issues/1693

* fix for 2.2.x

Co-authored-by: Kamalakar <kamalakar.ponaka@gmail.com>

Fixes gh-1693
This commit is contained in:
Kamalakar Ponaka
2021-01-11 16:19:31 -06:00
committed by spencergibb
parent 13b9030e0f
commit 5b18e0ea7a

View File

@@ -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;
}
}