This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git


The following commit(s) were added to refs/heads/main by this push:
     new 4a7f46316e7 CAMEL-18478 - Support Secrets Reload from Vault/Cloud 
Service in camel-spring-boot
4a7f46316e7 is described below

commit 4a7f46316e7f9f00e920593cb1cda9f10e381d4a
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Wed Sep 7 18:19:21 2022 +0200

    CAMEL-18478 - Support Secrets Reload from Vault/Cloud Service in 
camel-spring-boot
---
 .../src/main/docs/spring-boot.json                 | 20 +++++++++++
 .../boot/vault/AwsVaultAutoConfiguration.java      |  3 ++
 .../vault/AwsVaultConfigurationProperties.java     | 39 ++++++++++++++++++++++
 .../boot/vault/AwsVaultConfigurationTest.java      |  9 ++++-
 4 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json 
b/core/camel-spring-boot/src/main/docs/spring-boot.json
index 050d6da94c9..c0338b4a39c 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.json
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -1373,6 +1373,20 @@
       "sourceType": 
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties",
       "defaultValue": false
     },
+    {
+      "name": "camel.vault.aws.refresh-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Define if we want to refresh the secrets on update",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.vault.aws.refresh-period",
+      "type": "java.lang.Long",
+      "description": "Define the refresh period",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties",
+      "defaultValue": 30000
+    },
     {
       "name": "camel.vault.aws.region",
       "type": "java.lang.String",
@@ -1385,6 +1399,12 @@
       "description": "The AWS secret key",
       "sourceType": 
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties"
     },
+    {
+      "name": "camel.vault.aws.secrets",
+      "type": "java.lang.String",
+      "description": "Define the secrets to look at",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties"
+    },
     {
       "name": "camel.vault.azure.client-id",
       "type": "java.lang.String",
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultAutoConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultAutoConfiguration.java
index 68971269c25..20d3eeac81a 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultAutoConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultAutoConfiguration.java
@@ -37,6 +37,9 @@ public class AwsVaultAutoConfiguration {
         answer.setSecretKey(config.getSecretKey());
         answer.setRegion(config.getRegion());
         
answer.setDefaultCredentialsProvider(config.isDefaultCredentialsProvider());
+        answer.setRefreshEnabled(config.isRefreshEnabled());
+        answer.setRefreshPeriod(config.getRefreshPeriod());
+        answer.setSecrets(config.getSecrets());
         return answer;
     }
 
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationProperties.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationProperties.java
index f8dec601305..9657d044321 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationProperties.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationProperties.java
@@ -41,6 +41,21 @@ public class AwsVaultConfigurationProperties {
      */
     private boolean defaultCredentialsProvider;
 
+    /**
+     * 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 getAccessKey() {
         return accessKey;
     }
@@ -72,4 +87,28 @@ public class AwsVaultConfigurationProperties {
     public void setDefaultCredentialsProvider(boolean 
defaultCredentialsProvider) {
         this.defaultCredentialsProvider = defaultCredentialsProvider;
     }
+
+    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/AwsVaultConfigurationTest.java
 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationTest.java
index 31ab8844aec..8df230702a5 100644
--- 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationTest.java
+++ 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AwsVaultConfigurationTest.java
@@ -35,7 +35,11 @@ import org.springframework.test.annotation.DirtiesContext;
                 "camel.vault.aws.accessKey=myAccessKey",
                 "camel.vault.aws.secretKey=mySecretKey",
                 "camel.vault.aws.region=myRegion",
-                "camel.vault.aws.defaultCredentialsProvider=true"}
+                "camel.vault.aws.defaultCredentialsProvider=true",
+                "camel.vault.aws.refreshPeriod=60000",
+                "camel.vault.aws.refreshEnabled=true",
+                "camel.vault.aws.secrets=supersecret"
+        }
 )
 public class AwsVaultConfigurationTest {
 
@@ -48,5 +52,8 @@ public class AwsVaultConfigurationTest {
         Assertions.assertEquals("mySecretKey", 
camelContext.getVaultConfiguration().aws().getSecretKey());
         Assertions.assertEquals("myRegion", 
camelContext.getVaultConfiguration().aws().getRegion());
         Assertions.assertEquals(true, 
camelContext.getVaultConfiguration().aws().isDefaultCredentialsProvider());
+        Assertions.assertEquals(true, 
camelContext.getVaultConfiguration().aws().isRefreshEnabled());
+        Assertions.assertEquals(60000, 
camelContext.getVaultConfiguration().aws().getRefreshPeriod());
+        Assertions.assertEquals("supersecret", 
camelContext.getVaultConfiguration().aws().getSecrets());
     }
 }

Reply via email to