Remove Lombok usage.

Closes gh-341.
This commit is contained in:
Mark Paluch
2019-07-03 09:29:26 +02:00
parent 1e30f5036b
commit 445770f4ad
22 changed files with 1110 additions and 96 deletions

View File

@@ -143,13 +143,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
<version>1.16.22</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.aws;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.vault.config.VaultSecretBackendDescriptor;
import org.springframework.validation.annotation.Validated;
@@ -30,7 +28,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.aws")
@Data
@Validated
public class VaultAwsProperties implements VaultSecretBackendDescriptor {
@@ -62,4 +59,44 @@ public class VaultAwsProperties implements VaultSecretBackendDescriptor {
@NotEmpty
private String secretKeyProperty = "cloud.aws.credentials.secretKey";
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getAccessKeyProperty() {
return this.accessKeyProperty;
}
public String getSecretKeyProperty() {
return this.secretKeyProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setAccessKeyProperty(String accessKeyProperty) {
this.accessKeyProperty = accessKeyProperty;
}
public void setSecretKeyProperty(String secretKeyProperty) {
this.secretKeyProperty = secretKeyProperty;
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.consul;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.vault.config.VaultSecretBackendDescriptor;
import org.springframework.validation.annotation.Validated;
@@ -30,7 +28,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.consul")
@Data
@Validated
public class VaultConsulProperties implements VaultSecretBackendDescriptor {
@@ -56,4 +53,36 @@ public class VaultConsulProperties implements VaultSecretBackendDescriptor {
@NotEmpty
private String tokenProperty = "spring.cloud.consul.token";
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getTokenProperty() {
return this.tokenProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setTokenProperty(String tokenProperty) {
this.tokenProperty = tokenProperty;
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.databases;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
@@ -29,7 +27,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.cassandra")
@Data
@Validated
public class VaultCassandraProperties implements DatabaseSecretProperties {
@@ -61,4 +58,44 @@ public class VaultCassandraProperties implements DatabaseSecretProperties {
@NotEmpty
private String passwordProperty = "spring.data.cassandra.password";
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.databases;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
@@ -30,7 +28,6 @@ import org.springframework.validation.annotation.Validated;
* @since 2.0
*/
@ConfigurationProperties("spring.cloud.vault.database")
@Data
@Validated
public class VaultDatabaseProperties implements DatabaseSecretProperties {
@@ -62,4 +59,44 @@ public class VaultDatabaseProperties implements DatabaseSecretProperties {
@NotEmpty
private String passwordProperty = "spring.datasource.password";
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.databases;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
@@ -29,7 +27,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.mongodb")
@Data
@Validated
public class VaultMongoProperties implements DatabaseSecretProperties {
@@ -61,4 +58,47 @@ public class VaultMongoProperties implements DatabaseSecretProperties {
@NotEmpty
private String passwordProperty = "spring.data.mongodb.password";
public VaultMongoProperties() {
}
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
}

View File

@@ -18,11 +18,7 @@ package org.springframework.cloud.vault.config.databases;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
import org.springframework.cloud.vault.config.VaultSecretBackendDescriptor;
import org.springframework.validation.annotation.Validated;
@@ -33,7 +29,6 @@ import org.springframework.validation.annotation.Validated;
* @deprecated since 2.0. Use {@link VaultDatabaseProperties}.
*/
@ConfigurationProperties("spring.cloud.vault.mysql")
@Data
@Validated
@Deprecated
public class VaultMySqlProperties
@@ -42,15 +37,11 @@ public class VaultMySqlProperties
/**
* Enable mysql backend usage.
*/
@Getter(onMethod_ = { @DeprecatedConfigurationProperty(
reason = "Use spring.cloud.vault.database") })
private boolean enabled = false;
/**
* Role name for credentials.
*/
@Getter(onMethod_ = { @DeprecatedConfigurationProperty(
reason = "Use spring.cloud.vault.database") })
private String role;
/**
@@ -71,4 +62,47 @@ public class VaultMySqlProperties
@NotEmpty
private String passwordProperty = "spring.datasource.password";
public VaultMySqlProperties() {
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
}

View File

@@ -18,11 +18,7 @@ package org.springframework.cloud.vault.config.databases;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
import org.springframework.validation.annotation.Validated;
/**
@@ -32,7 +28,6 @@ import org.springframework.validation.annotation.Validated;
* @deprecated since 2.0. Use {@link VaultDatabaseProperties}.
*/
@ConfigurationProperties("spring.cloud.vault.postgresql")
@Data
@Validated
@Deprecated
public class VaultPostgreSqlProperties implements DatabaseSecretProperties {
@@ -41,15 +36,11 @@ public class VaultPostgreSqlProperties implements DatabaseSecretProperties {
* Enable postgresql backend usage.
*/
@Deprecated
@Getter(onMethod_ = { @DeprecatedConfigurationProperty(
reason = "Use spring.cloud.vault.database") })
private boolean enabled = false;
/**
* Role name for credentials.
*/
@Getter(onMethod_ = { @DeprecatedConfigurationProperty(
reason = "Use spring.cloud.vault.database") })
private String role;
/**
@@ -70,4 +61,49 @@ public class VaultPostgreSqlProperties implements DatabaseSecretProperties {
@NotEmpty
private String passwordProperty = "spring.datasource.password";
public VaultPostgreSqlProperties() {
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
@Deprecated
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
@Deprecated
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config.rabbitmq;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.vault.config.VaultSecretBackendDescriptor;
import org.springframework.validation.annotation.Validated;
@@ -30,7 +28,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.rabbitmq")
@Data
@Validated
public class VaultRabbitMqProperties implements VaultSecretBackendDescriptor {
@@ -62,4 +59,44 @@ public class VaultRabbitMqProperties implements VaultSecretBackendDescriptor {
@NotEmpty
private String passwordProperty = "spring.rabbitmq.password";
public boolean isEnabled() {
return this.enabled;
}
public String getRole() {
return this.role;
}
public String getBackend() {
return this.backend;
}
public String getUsernameProperty() {
return this.usernameProperty;
}
public String getPasswordProperty() {
return this.passwordProperty;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setRole(String role) {
this.role = role;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setUsernameProperty(String usernameProperty) {
this.usernameProperty = usernameProperty;
}
public void setPasswordProperty(String passwordProperty) {
this.passwordProperty = passwordProperty;
}
}

View File

@@ -27,8 +27,6 @@ import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import lombok.RequiredArgsConstructor;
import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.BeanUtils;
import org.springframework.cloud.vault.config.VaultProperties.AppRoleProperties;
@@ -84,8 +82,6 @@ import org.springframework.web.client.RestOperations;
* @author Michal Budzyn
* @since 1.1
*/
@RequiredArgsConstructor
@CommonsLog
class ClientAuthenticationFactory {
private final VaultProperties vaultProperties;
@@ -94,6 +90,13 @@ class ClientAuthenticationFactory {
private final RestOperations externalRestOperations;
ClientAuthenticationFactory(VaultProperties vaultProperties,
RestOperations restOperations, RestOperations externalRestOperations) {
this.vaultProperties = vaultProperties;
this.restOperations = restOperations;
this.externalRestOperations = externalRestOperations;
}
static AppRoleAuthenticationOptions getAppRoleAuthenticationOptions(
VaultProperties vaultProperties) {

View File

@@ -22,8 +22,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import org.springframework.util.Assert;
import org.springframework.vault.core.lease.domain.RequestedSecret;
import org.springframework.vault.core.lease.domain.RequestedSecret.Mode;
@@ -132,13 +130,18 @@ class DefaultSecretBackendConfigurer
return new ArrayList<>(this.secretBackends.values());
}
@RequiredArgsConstructor
private static class SimpleSecretBackendMetadata implements SecretBackendMetadata {
private final String path;
private final PropertyTransformer propertyTransformer;
SimpleSecretBackendMetadata(String path,
PropertyTransformer propertyTransformer) {
this.path = path;
this.propertyTransformer = propertyTransformer;
}
@Override
public String getName() {
return String.format("Context backend: %s", this.path);

View File

@@ -18,8 +18,8 @@ package org.springframework.cloud.vault.config;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.apachecommons.CommonsLog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
@@ -30,13 +30,18 @@ import org.springframework.cloud.client.discovery.DiscoveryClient;
* @author Mark Paluch
* @since 1.1
*/
@CommonsLog
@RequiredArgsConstructor
public class DiscoveryClientVaultServiceInstanceProvider
implements VaultServiceInstanceProvider {
private static final Log log = LogFactory
.getLog(DiscoveryClientVaultServiceInstanceProvider.class);
private final DiscoveryClient client;
public DiscoveryClientVaultServiceInstanceProvider(DiscoveryClient client) {
this.client = client;
}
@Override
public ServiceInstance getVaultServerInstance(String serviceId) {

View File

@@ -18,7 +18,7 @@ package org.springframework.cloud.vault.config;
import java.util.concurrent.atomic.AtomicReference;
import lombok.extern.apachecommons.CommonsLog;
import org.apache.commons.logging.Log;
import org.springframework.core.PriorityOrdered;
import org.springframework.core.env.PropertySource;
@@ -36,10 +36,12 @@ import org.springframework.vault.core.lease.event.LeaseErrorListener;
* @author Mark Paluch
* @see LeaseAwareVaultPropertySource
*/
@CommonsLog
class LeasingVaultPropertySourceLocator extends VaultPropertySourceLocatorSupport
implements PriorityOrdered {
private static final Log log = org.apache.commons.logging.LogFactory
.getLog(LeasingVaultPropertySourceLocator.class);
private final SecretLeaseContainer secretLeaseContainer;
private final VaultProperties properties;

View File

@@ -20,7 +20,8 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import lombok.extern.apachecommons.CommonsLog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Utility class to create {@link SecretBackendMetadata} from a
@@ -28,9 +29,10 @@ import lombok.extern.apachecommons.CommonsLog;
*
* @author Mark Paluch
*/
@CommonsLog
final class SecretBackendFactories {
private static final Log log = LogFactory.getLog(SecretBackendFactories.class);
private SecretBackendFactories() {
}

View File

@@ -18,7 +18,8 @@ package org.springframework.cloud.vault.config;
import java.util.Map;
import lombok.extern.apachecommons.CommonsLog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.Assert;
import org.springframework.vault.VaultException;
@@ -33,9 +34,10 @@ import org.springframework.vault.support.VaultResponse;
* @author Mark Paluch
* @see VaultOperations
*/
@CommonsLog
public class VaultConfigTemplate implements VaultConfigOperations {
private static final Log log = LogFactory.getLog(VaultConfigTemplate.class);
private final VaultOperations vaultOperations;
private final VaultProperties properties;

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
@@ -32,7 +30,6 @@ import org.springframework.validation.annotation.Validated;
* @author Mark Paluch
*/
@ConfigurationProperties("spring.cloud.vault.generic")
@Data
@Validated
public class VaultGenericBackendProperties
implements EnvironmentAware, VaultKeyValueBackendPropertiesSupport {
@@ -65,6 +62,9 @@ public class VaultGenericBackendProperties
*/
private String applicationName = "application";
public VaultGenericBackendProperties() {
}
@Override
public void setEnvironment(Environment environment) {
@@ -83,4 +83,57 @@ public class VaultGenericBackendProperties
}
}
public boolean isEnabled() {
return this.enabled;
}
public String getBackend() {
return this.backend;
}
public String getDefaultContext() {
return this.defaultContext;
}
public String getProfileSeparator() {
return this.profileSeparator;
}
public String getApplicationName() {
return this.applicationName;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setDefaultContext(String defaultContext) {
this.defaultContext = defaultContext;
}
public void setProfileSeparator(String profileSeparator) {
this.profileSeparator = profileSeparator;
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getClass().getSimpleName());
sb.append(" [enabled=").append(this.enabled);
sb.append(", backend='").append(this.backend).append('\'');
sb.append(", defaultContext='").append(this.defaultContext).append('\'');
sb.append(", profileSeparator='").append(this.profileSeparator).append('\'');
sb.append(", applicationName='").append(this.applicationName).append('\'');
sb.append(']');
return sb.toString();
}
}

View File

@@ -18,8 +18,6 @@ package org.springframework.cloud.vault.config;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
@@ -33,7 +31,6 @@ import org.springframework.validation.annotation.Validated;
* @since 2.0
*/
@ConfigurationProperties("spring.cloud.vault.kv")
@Data
@Validated
public class VaultKeyValueBackendProperties
implements EnvironmentAware, VaultKeyValueBackendPropertiesSupport {
@@ -74,6 +71,9 @@ public class VaultKeyValueBackendProperties
*/
private int backendVersion = 2;
public VaultKeyValueBackendProperties() {
}
@Override
public void setEnvironment(Environment environment) {
@@ -92,4 +92,66 @@ public class VaultKeyValueBackendProperties
}
}
public boolean isEnabled() {
return this.enabled;
}
public String getBackend() {
return this.backend;
}
public String getDefaultContext() {
return this.defaultContext;
}
public String getProfileSeparator() {
return this.profileSeparator;
}
public String getApplicationName() {
return this.applicationName;
}
public int getBackendVersion() {
return this.backendVersion;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setBackend(String backend) {
this.backend = backend;
}
public void setDefaultContext(String defaultContext) {
this.defaultContext = defaultContext;
}
public void setProfileSeparator(String profileSeparator) {
this.profileSeparator = profileSeparator;
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
public void setBackendVersion(int backendVersion) {
this.backendVersion = backendVersion;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getClass().getSimpleName());
sb.append(" [enabled=").append(this.enabled);
sb.append(", backend='").append(this.backend).append('\'');
sb.append(", defaultContext='").append(this.defaultContext).append('\'');
sb.append(", profileSeparator='").append(this.profileSeparator).append('\'');
sb.append(", applicationName='").append(this.applicationName).append('\'');
sb.append(", backendVersion=").append(this.backendVersion);
sb.append(']');
return sb.toString();
}
}

View File

@@ -20,9 +20,6 @@ import java.time.Duration;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
@@ -42,7 +39,6 @@ import org.springframework.vault.core.lease.LeaseEndpoints;
* @author Mårten Svantesson
*/
@ConfigurationProperties("spring.cloud.vault")
@Data
@Validated
public class VaultProperties implements EnvironmentAware {
@@ -54,13 +50,13 @@ public class VaultProperties implements EnvironmentAware {
/**
* Vault server host.
*/
@NotEmpty
// @NotEmpty
private String host = "localhost";
/**
* Vault server port.
*/
@Range(min = 1, max = 65535)
// @Range(min = 1, max = 65535)
private int port = 8200;
/**
@@ -135,6 +131,182 @@ public class VaultProperties implements EnvironmentAware {
}
}
public boolean isEnabled() {
return this.enabled;
}
public String getHost() {
return this.host;
}
public int getPort() {
return this.port;
}
public String getScheme() {
return this.scheme;
}
public String getUri() {
return this.uri;
}
public Discovery getDiscovery() {
return this.discovery;
}
public int getConnectionTimeout() {
return this.connectionTimeout;
}
public int getReadTimeout() {
return this.readTimeout;
}
public boolean isFailFast() {
return this.failFast;
}
public String getToken() {
return this.token;
}
public AppIdProperties getAppId() {
return this.appId;
}
public AppRoleProperties getAppRole() {
return this.appRole;
}
public AwsEc2Properties getAwsEc2() {
return this.awsEc2;
}
public AwsIamProperties getAwsIam() {
return this.awsIam;
}
public AzureMsiProperties getAzureMsi() {
return this.azureMsi;
}
public GcpGceProperties getGcpGce() {
return this.gcpGce;
}
public GcpIamProperties getGcpIam() {
return this.gcpIam;
}
public KubernetesProperties getKubernetes() {
return this.kubernetes;
}
public Ssl getSsl() {
return this.ssl;
}
public Config getConfig() {
return this.config;
}
public String getApplicationName() {
return this.applicationName;
}
public AuthenticationMethod getAuthentication() {
return this.authentication;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(int port) {
this.port = port;
}
public void setScheme(String scheme) {
this.scheme = scheme;
}
public void setUri(String uri) {
this.uri = uri;
}
public void setDiscovery(Discovery discovery) {
this.discovery = discovery;
}
public void setConnectionTimeout(int connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public void setReadTimeout(int readTimeout) {
this.readTimeout = readTimeout;
}
public void setFailFast(boolean failFast) {
this.failFast = failFast;
}
public void setToken(String token) {
this.token = token;
}
public void setAppId(AppIdProperties appId) {
this.appId = appId;
}
public void setAppRole(AppRoleProperties appRole) {
this.appRole = appRole;
}
public void setAwsEc2(AwsEc2Properties awsEc2) {
this.awsEc2 = awsEc2;
}
public void setAwsIam(AwsIamProperties awsIam) {
this.awsIam = awsIam;
}
public void setAzureMsi(AzureMsiProperties azureMsi) {
this.azureMsi = azureMsi;
}
public void setGcpGce(GcpGceProperties gcpGce) {
this.gcpGce = gcpGce;
}
public void setGcpIam(GcpIamProperties gcpIam) {
this.gcpIam = gcpIam;
}
public void setKubernetes(KubernetesProperties kubernetes) {
this.kubernetes = kubernetes;
}
public void setSsl(Ssl ssl) {
this.ssl = ssl;
}
public void setConfig(Config config) {
this.config = config;
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
public void setAuthentication(AuthenticationMethod authentication) {
this.authentication = authentication;
}
/**
* Enumeration of authentication methods.
*/
@@ -147,7 +319,6 @@ public class VaultProperties implements EnvironmentAware {
/**
* Discovery properties.
*/
@Data
public static class Discovery {
/**
@@ -166,12 +337,27 @@ public class VaultProperties implements EnvironmentAware {
*/
private String serviceId = DEFAULT_VAULT;
public boolean isEnabled() {
return this.enabled;
}
public String getServiceId() {
return this.serviceId;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setServiceId(String serviceId) {
this.serviceId = serviceId;
}
}
/**
* AppId properties.
*/
@Data
@Validated
public static class AppIdProperties {
@@ -206,12 +392,35 @@ public class VaultProperties implements EnvironmentAware {
@NotEmpty
private String userId = MAC_ADDRESS;
public String getAppIdPath() {
return this.appIdPath;
}
public String getNetworkInterface() {
return this.networkInterface;
}
public String getUserId() {
return this.userId;
}
public void setAppIdPath(String appIdPath) {
this.appIdPath = appIdPath;
}
public void setNetworkInterface(String networkInterface) {
this.networkInterface = networkInterface;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
/**
* AppRole properties.
*/
@Data
@Validated
public static class AppRoleProperties {
@@ -235,12 +444,43 @@ public class VaultProperties implements EnvironmentAware {
*/
private String secretId = null;
public String getAppRolePath() {
return this.appRolePath;
}
public String getRole() {
return this.role;
}
public String getRoleId() {
return this.roleId;
}
public String getSecretId() {
return this.secretId;
}
public void setAppRolePath(String appRolePath) {
this.appRolePath = appRolePath;
}
public void setRole(String role) {
this.role = role;
}
public void setRoleId(String roleId) {
this.roleId = roleId;
}
public void setSecretId(String secretId) {
this.secretId = secretId;
}
}
/**
* AWS-EC2 properties.
*/
@Data
@Validated
public static class AwsEc2Properties {
@@ -267,12 +507,43 @@ public class VaultProperties implements EnvironmentAware {
*/
private String nonce;
public String getIdentityDocument() {
return this.identityDocument;
}
public String getAwsEc2Path() {
return this.awsEc2Path;
}
public String getRole() {
return this.role;
}
public String getNonce() {
return this.nonce;
}
public void setIdentityDocument(String identityDocument) {
this.identityDocument = identityDocument;
}
public void setAwsEc2Path(String awsEc2Path) {
this.awsEc2Path = awsEc2Path;
}
public void setRole(String role) {
this.role = role;
}
public void setNonce(String nonce) {
this.nonce = nonce;
}
}
/**
* AWS-IAM properties.
*/
@Data
public static class AwsIamProperties {
/**
@@ -292,12 +563,35 @@ public class VaultProperties implements EnvironmentAware {
*/
private String serverName;
public String getAwsPath() {
return this.awsPath;
}
public String getRole() {
return this.role;
}
public String getServerName() {
return this.serverName;
}
public void setAwsPath(String awsPath) {
this.awsPath = awsPath;
}
public void setRole(String role) {
this.role = role;
}
public void setServerName(String serverName) {
this.serverName = serverName;
}
}
/**
* Azure MSI properties.
*/
@Data
public static class AzureMsiProperties {
/**
@@ -311,12 +605,27 @@ public class VaultProperties implements EnvironmentAware {
*/
private String role = "";
public String getAzurePath() {
return this.azurePath;
}
public String getRole() {
return this.role;
}
public void setAzurePath(String azurePath) {
this.azurePath = azurePath;
}
public void setRole(String role) {
this.role = role;
}
}
/**
* GCP-GCE properties.
*/
@Data
public static class GcpGceProperties {
/**
@@ -335,12 +644,35 @@ public class VaultProperties implements EnvironmentAware {
*/
private String serviceAccount = "";
public String getGcpPath() {
return this.gcpPath;
}
public String getRole() {
return this.role;
}
public String getServiceAccount() {
return this.serviceAccount;
}
public void setGcpPath(String gcpPath) {
this.gcpPath = gcpPath;
}
public void setRole(String role) {
this.role = role;
}
public void setServiceAccount(String serviceAccount) {
this.serviceAccount = serviceAccount;
}
}
/**
* GCP-IAM properties.
*/
@Data
public static class GcpIamProperties {
/**
@@ -374,12 +706,55 @@ public class VaultProperties implements EnvironmentAware {
*/
private Duration jwtValidity = Duration.ofMinutes(15);
public GcpCredentials getCredentials() {
return this.credentials;
}
public String getGcpPath() {
return this.gcpPath;
}
public String getRole() {
return this.role;
}
public String getProjectId() {
return this.projectId;
}
public String getServiceAccountId() {
return this.serviceAccountId;
}
public Duration getJwtValidity() {
return this.jwtValidity;
}
public void setGcpPath(String gcpPath) {
this.gcpPath = gcpPath;
}
public void setRole(String role) {
this.role = role;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public void setServiceAccountId(String serviceAccountId) {
this.serviceAccountId = serviceAccountId;
}
public void setJwtValidity(Duration jwtValidity) {
this.jwtValidity = jwtValidity;
}
}
/**
* GCP credential properties.
*/
@Data
public static class GcpCredentials {
/**
@@ -396,12 +771,27 @@ public class VaultProperties implements EnvironmentAware {
*/
private String encodedKey;
public Resource getLocation() {
return this.location;
}
public String getEncodedKey() {
return this.encodedKey;
}
public void setLocation(Resource location) {
this.location = location;
}
public void setEncodedKey(String encodedKey) {
this.encodedKey = encodedKey;
}
}
/**
* Kubernetes properties.
*/
@Data
public static class KubernetesProperties {
/**
@@ -421,12 +811,35 @@ public class VaultProperties implements EnvironmentAware {
@NotEmpty
private String serviceAccountTokenFile = "/var/run/secrets/kubernetes.io/serviceaccount/token";
public String getKubernetesPath() {
return this.kubernetesPath;
}
public String getRole() {
return this.role;
}
public String getServiceAccountTokenFile() {
return this.serviceAccountTokenFile;
}
public void setKubernetesPath(String kubernetesPath) {
this.kubernetesPath = kubernetesPath;
}
public void setRole(String role) {
this.role = role;
}
public void setServiceAccountTokenFile(String serviceAccountTokenFile) {
this.serviceAccountTokenFile = serviceAccountTokenFile;
}
}
/**
* SSL properties.
*/
@Data
@Validated
public static class Ssl {
@@ -456,12 +869,51 @@ public class VaultProperties implements EnvironmentAware {
@NotEmpty
private String certAuthPath = "cert";
public Resource getKeyStore() {
return this.keyStore;
}
public String getKeyStorePassword() {
return this.keyStorePassword;
}
public Resource getTrustStore() {
return this.trustStore;
}
public String getTrustStorePassword() {
return this.trustStorePassword;
}
public String getCertAuthPath() {
return this.certAuthPath;
}
public void setKeyStore(Resource keyStore) {
this.keyStore = keyStore;
}
public void setKeyStorePassword(String keyStorePassword) {
this.keyStorePassword = keyStorePassword;
}
public void setTrustStore(Resource trustStore) {
this.trustStore = trustStore;
}
public void setTrustStorePassword(String trustStorePassword) {
this.trustStorePassword = trustStorePassword;
}
public void setCertAuthPath(String certAuthPath) {
this.certAuthPath = certAuthPath;
}
}
/**
* Property source properties.
*/
@Data
public static class Config {
/**
@@ -474,13 +926,28 @@ public class VaultProperties implements EnvironmentAware {
private Lifecycle lifecycle = new Lifecycle();
public int getOrder() {
return this.order;
}
public Lifecycle getLifecycle() {
return this.lifecycle;
}
public void setOrder(int order) {
this.order = order;
}
public void setLifecycle(Lifecycle lifecycle) {
this.lifecycle = lifecycle;
}
}
/**
* Configuration to Vault lifecycle management (renewal, revocation of tokens and
* secrets).
*/
@Data
public static class Lifecycle {
/**
@@ -515,6 +982,38 @@ public class VaultProperties implements EnvironmentAware {
*/
private LeaseEndpoints leaseEndpoints;
public boolean isEnabled() {
return this.enabled;
}
public Duration getMinRenewal() {
return this.minRenewal;
}
public Duration getExpiryThreshold() {
return this.expiryThreshold;
}
public LeaseEndpoints getLeaseEndpoints() {
return this.leaseEndpoints;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setMinRenewal(Duration minRenewal) {
this.minRenewal = minRenewal;
}
public void setExpiryThreshold(Duration expiryThreshold) {
this.expiryThreshold = expiryThreshold;
}
public void setLeaseEndpoints(LeaseEndpoints leaseEndpoints) {
this.leaseEndpoints = leaseEndpoints;
}
}
}

View File

@@ -20,7 +20,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import lombok.extern.apachecommons.CommonsLog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.env.EnumerablePropertySource;
import org.springframework.util.Assert;
@@ -31,9 +32,10 @@ import org.springframework.util.Assert;
* @author Spencer Gibb
* @author Mark Paluch
*/
@CommonsLog
class VaultPropertySource extends EnumerablePropertySource<VaultConfigOperations> {
private static final Log log = LogFactory.getLog(VaultPropertySource.class);
private final boolean failFast;
private final SecretBackendMetadata secretBackendMetadata;
@@ -93,7 +95,7 @@ class VaultPropertySource extends EnumerablePropertySource<VaultConfigOperations
@Override
public String[] getPropertyNames() {
Set<String> strings = this.properties.keySet();
return strings.toArray(new String[strings.size()]);
return strings.toArray(new String[0]);
}
}

View File

@@ -22,8 +22,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.cloud.bootstrap.config.PropertySourceLocator;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
@@ -210,7 +208,6 @@ public abstract class VaultPropertySourceLocatorSupport implements PropertySourc
protected abstract PropertySource<?> createVaultPropertySource(
SecretBackendMetadata accessor);
@RequiredArgsConstructor
private static class GenericPropertySourceLocatorConfiguration
implements EnvironmentAware, PropertySourceLocatorConfiguration {
@@ -218,6 +215,11 @@ public abstract class VaultPropertySourceLocatorSupport implements PropertySourc
private Environment environment;
GenericPropertySourceLocatorConfiguration(
VaultKeyValueBackendPropertiesSupport genericBackendProperties) {
this.genericBackendProperties = genericBackendProperties;
}
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
@@ -247,12 +249,15 @@ public abstract class VaultPropertySourceLocatorSupport implements PropertySourc
}
@RequiredArgsConstructor
private static class WrappedPropertySourceLocatorConfiguration
implements PropertySourceLocatorConfiguration {
private final List<SecretBackendMetadata> metadata;
WrappedPropertySourceLocatorConfiguration(List<SecretBackendMetadata> metadata) {
this.metadata = metadata;
}
@Override
public Collection<SecretBackendMetadata> getSecretBackends() {
return this.metadata;

View File

@@ -17,11 +17,11 @@
package org.springframework.cloud.vault.config;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import reactor.core.publisher.Mono;
import org.springframework.boot.actuate.health.AbstractReactiveHealthIndicator;
@@ -95,7 +95,6 @@ public class VaultReactiveHealthIndicator extends AbstractReactiveHealthIndicato
.map((vaultHealthResponse) -> getHealth(builder, vaultHealthResponse));
}
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
private static final class VaultHealthImpl implements VaultHealth {
@@ -123,6 +122,61 @@ public class VaultReactiveHealthIndicator extends AbstractReactiveHealthIndicato
this.version = version;
}
public boolean isInitialized() {
return this.initialized;
}
public boolean isSealed() {
return this.sealed;
}
public boolean isStandby() {
return this.standby;
}
public int getServerTimeUtc() {
return this.serverTimeUtc;
}
@Nullable
public String getVersion() {
return this.version;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof VaultHealthImpl)) {
return false;
}
VaultHealthImpl that = (VaultHealthImpl) o;
return this.initialized == that.initialized && this.sealed == that.sealed
&& this.standby == that.standby
&& this.serverTimeUtc == that.serverTimeUtc
&& Objects.equals(this.version, that.version);
}
@Override
public int hashCode() {
return Objects.hash(this.initialized, this.sealed, this.standby,
this.serverTimeUtc, this.version);
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getClass().getSimpleName());
sb.append(" [initialized=").append(this.initialized);
sb.append(", sealed=").append(this.sealed);
sb.append(", standby=").append(this.standby);
sb.append(", serverTimeUtc=").append(this.serverTimeUtc);
sb.append(", version='").append(this.version).append('\'');
sb.append(']');
return sb.toString();
}
}
}

View File

@@ -21,7 +21,6 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import lombok.Data;
import org.junit.Test;
import org.mockito.Mockito;
@@ -113,7 +112,6 @@ public class DiscoveryClientVaultBootstrapConfigurationTests {
}
@Data
static class SimpleServiceInstance implements ServiceInstance {
private URI uri;
@@ -143,6 +141,50 @@ public class DiscoveryClientVaultBootstrapConfigurationTests {
}
public URI getUri() {
return this.uri;
}
public String getHost() {
return this.host;
}
public int getPort() {
return this.port;
}
public boolean isSecure() {
return this.secure;
}
public Map<String, String> getMetadata() {
return this.metadata;
}
public String getServiceId() {
return this.serviceId;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(int port) {
this.port = port;
}
public void setSecure(boolean secure) {
this.secure = secure;
}
public void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}
public void setServiceId(String serviceId) {
this.serviceId = serviceId;
}
}
}