From 927991bb7b6d6b6d32f0c5ed29d08a346d6fb7c5 Mon Sep 17 00:00:00 2001 From: knv srinivas Date: Wed, 20 Oct 2021 20:57:08 +0530 Subject: [PATCH] Ordered Support for awssecretsmanager profile. Fixes gm-1980 (#1981) * Ordered Support for awssecretsmanager profile. Fixes gm-1980 * Ordered Support for GoogleSecretManager profile. Fixes gm-1980 Co-authored-by: knv --- .../AwsSecretsManagerEnvironmentRepository.java | 12 +++++++++++- .../GoogleSecretManagerEnvironmentRepository.java | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsSecretsManagerEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsSecretsManagerEnvironmentRepository.java index bfafdc5a..02b9a626 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsSecretsManagerEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/AwsSecretsManagerEnvironmentRepository.java @@ -33,14 +33,16 @@ import org.apache.commons.logging.LogFactory; import org.springframework.cloud.config.environment.Environment; import org.springframework.cloud.config.environment.PropertySource; import org.springframework.cloud.config.server.config.ConfigServerProperties; +import org.springframework.core.Ordered; import org.springframework.util.StringUtils; import static org.springframework.cloud.config.server.environment.AwsSecretsManagerEnvironmentProperties.DEFAULT_PATH_SEPARATOR; /** * @author Tejas Pandilwar + * @author KNV Srinivas */ -public class AwsSecretsManagerEnvironmentRepository implements EnvironmentRepository { +public class AwsSecretsManagerEnvironmentRepository implements EnvironmentRepository, Ordered { private static final Log log = LogFactory.getLog(AwsSecretsManagerEnvironmentRepository.class); @@ -52,12 +54,15 @@ public class AwsSecretsManagerEnvironmentRepository implements EnvironmentReposi private final AwsSecretsManagerEnvironmentProperties environmentProperties; + private final int order; + public AwsSecretsManagerEnvironmentRepository(AWSSecretsManager awsSmClient, ConfigServerProperties configServerProperties, AwsSecretsManagerEnvironmentProperties environmentProperties) { this.awsSmClient = awsSmClient; this.configServerProperties = configServerProperties; this.environmentProperties = environmentProperties; + this.order = environmentProperties.getOrder(); this.objectMapper = new ObjectMapper(); } @@ -153,4 +158,9 @@ public class AwsSecretsManagerEnvironmentRepository implements EnvironmentReposi return properties; } + @Override + public int getOrder() { + return order; + } + } diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/GoogleSecretManagerEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/GoogleSecretManagerEnvironmentRepository.java index ee30ad81..0f31aa93 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/GoogleSecretManagerEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/GoogleSecretManagerEnvironmentRepository.java @@ -32,12 +32,14 @@ import org.springframework.cloud.config.server.environment.secretmanager.GoogleS import org.springframework.cloud.config.server.environment.secretmanager.GoogleSecretManagerAccessStrategy; import org.springframework.cloud.config.server.environment.secretmanager.GoogleSecretManagerAccessStrategyFactory; import org.springframework.cloud.config.server.environment.secretmanager.HttpHeaderGoogleConfigProvider; +import org.springframework.core.Ordered; import org.springframework.web.client.RestTemplate; /** * @author Jose Maria Alvarez + * @author KNV Srinivas */ -public class GoogleSecretManagerEnvironmentRepository implements EnvironmentRepository { +public class GoogleSecretManagerEnvironmentRepository implements EnvironmentRepository, Ordered { private String applicationLabel; @@ -49,6 +51,8 @@ public class GoogleSecretManagerEnvironmentRepository implements EnvironmentRepo private GoogleConfigProvider configProvider; + private final int order; + public GoogleSecretManagerEnvironmentRepository(ObjectProvider request, RestTemplate rest, GoogleSecretManagerEnvironmentProperties properties) { this.applicationLabel = properties.getApplicationLabel(); @@ -56,6 +60,7 @@ public class GoogleSecretManagerEnvironmentRepository implements EnvironmentRepo this.configProvider = new HttpHeaderGoogleConfigProvider(request); this.accessStrategy = GoogleSecretManagerAccessStrategyFactory.forVersion(rest, configProvider, properties); this.tokenMandatory = properties.getTokenMandatory(); + this.order = properties.getOrder(); } @Override @@ -114,4 +119,8 @@ public class GoogleSecretManagerEnvironmentRepository implements EnvironmentRepo return result; } + @Override + public int getOrder() { + return order; + } }