CAMEL-18502 - Support Secrets Reload from Vault/Cloud Service in camel-spring-boot - Google Secret Manager
diff --git a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultAutoConfiguration.java b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultAutoConfiguration.java
index 6b53399..de03063 100644
--- a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultAutoConfiguration.java
+++ b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultAutoConfiguration.java
@@ -17,7 +17,6 @@
package org.apache.camel.spring.boot.vault;
import org.apache.camel.spring.boot.CamelAutoConfiguration;
-import org.apache.camel.vault.AwsVaultConfiguration;
import org.apache.camel.vault.GcpVaultConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -37,6 +36,10 @@
answer.setServiceAccountKey(config.getServiceAccountKey());
answer.setProjectId(config.getProjectId());
answer.setUseDefaultInstance(config.isUseDefaultInstance());
+ answer.setRefreshEnabled(config.isRefreshEnabled());
+ answer.setRefreshPeriod(config.getRefreshPeriod());
+ answer.setSecrets(config.getSecrets());
+ answer.setSubscriptionName(config.getSubscriptionName());
return answer;
}
diff --git a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationProperties.java b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationProperties.java
index 5660834..c19251c 100644
--- a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationProperties.java
+++ b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationProperties.java
@@ -36,6 +36,26 @@
* Define if we want to use the GCP Client Default Instance or not
*/
private boolean useDefaultInstance;
+
+ /**
+ * Define the Google Pubsub subscription Name to be used when checking for updates
+ */
+ private String subscriptionName;
+
+ /**
+ * Define if we want to refresh the secrets on update
+ */
+ private boolean refreshEnabled;
+
+ /**
+ * Define the refresh period
+ */
+ private long refreshPeriod = 30000;
+
+ /**
+ * Define the secrets to look at
+ */
+ private String secrets;
public String getServiceAccountKey() {
return serviceAccountKey;
@@ -60,4 +80,36 @@
public void setUseDefaultInstance(boolean useDefaultInstance) {
this.useDefaultInstance = useDefaultInstance;
}
+
+ public String getSubscriptionName() {
+ return subscriptionName;
+ }
+
+ public void setSubscriptionName(String subscriptionName) {
+ this.subscriptionName = subscriptionName;
+ }
+
+ public boolean isRefreshEnabled() {
+ return refreshEnabled;
+ }
+
+ public void setRefreshEnabled(boolean refreshEnabled) {
+ this.refreshEnabled = refreshEnabled;
+ }
+
+ public long getRefreshPeriod() {
+ return refreshPeriod;
+ }
+
+ public void setRefreshPeriod(long refreshPeriod) {
+ this.refreshPeriod = refreshPeriod;
+ }
+
+ public String getSecrets() {
+ return secrets;
+ }
+
+ public void setSecrets(String secrets) {
+ this.secrets = secrets;
+ }
}
diff --git a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationTest.java b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationTest.java
index c3f244d..47ed0fd 100644
--- a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationTest.java
+++ b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/GcpVaultConfigurationTest.java
@@ -33,7 +33,12 @@
GcpVaultConfigurationTest.class},
properties = {
"camel.vault.gcp.serviceAccountKey=file:////key.json",
- "camel.vault.gcp.projectId=gcp-project"}
+ "camel.vault.gcp.projectId=gcp-project,",
+ "camel.vault.gcp.subscriptionName=sub-1",
+ "camel.vault.gcp.refreshEnabled=true,",
+ "camel.vault.gcp.refreshPeriod=300000,",
+ "camel.vault.gcp.secrets=hello*,"
+ }
)
public class GcpVaultConfigurationTest {