Allow overriding SecretBackendMetadataFactory beans.

We now allow overriding SecretBackendMetadataFactory by application-provided configuration to customize behavior of integrated secret backends.

Closes gh-118.
This commit is contained in:
Mark Paluch
2017-06-03 15:09:40 +02:00
parent 1c9be8b4ad
commit 97bcf1ebe8
12 changed files with 366 additions and 12 deletions

View File

@@ -18,6 +18,7 @@ package org.springframework.cloud.vault.config.databases;
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.vault.config.PropertyNameTransformer;
import org.springframework.cloud.vault.config.SecretBackendMetadata;
@@ -41,11 +42,16 @@ import org.springframework.vault.core.util.PropertyTransformer;
public class VaultConfigDatabaseBootstrapConfiguration {
@Bean
public SecretBackendMetadataFactory<DatabaseSecretProperties> databaseSecretBackendMetadataFactory() {
@ConditionalOnMissingBean
public DatabaseSecretBackendMetadataFactory databaseSecretBackendMetadataFactory() {
return new DatabaseSecretBackendMetadataFactory();
}
static class DatabaseSecretBackendMetadataFactory
/**
* {@link SecretBackendMetadataFactory} for Database integration using
* {@link DatabaseSecretProperties}.
*/
public static class DatabaseSecretBackendMetadataFactory
implements SecretBackendMetadataFactory<DatabaseSecretProperties> {
@Override
@@ -69,7 +75,7 @@ public class VaultConfigDatabaseBootstrapConfiguration {
* @param properties must not be {@literal null}.
* @return the {@link SecretBackendMetadata}
*/
public static SecretBackendMetadata forDatabase(
static SecretBackendMetadata forDatabase(
final DatabaseSecretProperties properties) {
Assert.notNull(properties, "DatabaseSecretProperties must not be null");