You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/04/05 14:33:48 UTC

[camel] 02/05: CAMEL-18625 - Provide an option to pass specific AWS SAML Profile

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.git

commit 9ce514c14ead7939c222196508fecce7b523296d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Apr 5 14:51:11 2023 +0200

    CAMEL-18625 - Provide an option to pass specific AWS SAML Profile
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../main/AwsVaultConfigurationProperties.java      | 16 ++++++
 .../java/org/apache/camel/main/MainVaultTest.java  | 59 ++++++++++++++++++++++
 2 files changed, 75 insertions(+)

diff --git a/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
index ce7b852e001..9dc9e3d3a7e 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
@@ -81,6 +81,22 @@ public class AwsVaultConfigurationProperties extends AwsVaultConfiguration imple
         return this;
     }
 
+    /**
+     * Define if we want to use the AWS Profile Credentials Provider or not
+     */
+    public AwsVaultConfigurationProperties withProfileCredentialsProvider(boolean profileCredentialsProvider) {
+        setProfileCredentialsProvider(profileCredentialsProvider);
+        return this;
+    }
+
+    /**
+     * Define the profile name if we are using the Profile Credentials Provider
+     */
+    public AwsVaultConfigurationProperties withProfileName(String profileName) {
+        setProfileName(profileName);
+        return this;
+    }
+
     /**
      * Whether to automatically reload Camel upon secrets being updated in AWS.
      */
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/MainVaultTest.java b/core/camel-main/src/test/java/org/apache/camel/main/MainVaultTest.java
index 2fa3b20d2e3..acb016a0e7a 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/MainVaultTest.java
+++ b/core/camel-main/src/test/java/org/apache/camel/main/MainVaultTest.java
@@ -53,6 +53,35 @@ public class MainVaultTest {
         main.stop();
     }
 
+    @Test
+    public void testMainProfileAws() throws Exception {
+        Main main = new Main();
+
+        main.addInitialProperty("camel.vault.aws.accessKey", "myKey");
+        main.addInitialProperty("camel.vault.aws.secretKey", "mySecret");
+        main.addInitialProperty("camel.vault.aws.region", "myRegion");
+        main.addInitialProperty("camel.vault.aws.defaultCredentialsProvider", "false");
+        main.addInitialProperty("camel.vault.aws.profileCredentialsProvider", "true");
+        main.addInitialProperty("camel.vault.aws.profileName", "jack");
+
+        main.start();
+
+        CamelContext context = main.getCamelContext();
+        assertNotNull(context);
+
+        AwsVaultConfiguration cfg = context.getVaultConfiguration().aws();
+        assertNotNull(cfg);
+
+        Assertions.assertEquals("myKey", cfg.getAccessKey());
+        Assertions.assertEquals("mySecret", cfg.getSecretKey());
+        Assertions.assertEquals("myRegion", cfg.getRegion());
+        Assertions.assertEquals(false, cfg.isDefaultCredentialsProvider());
+        Assertions.assertEquals(true, cfg.isProfileCredentialsProvider());
+        Assertions.assertEquals("jack", cfg.getProfileName());
+
+        main.stop();
+    }
+
     @Test
     public void testMainAwsFluent() throws Exception {
         Main main = new Main();
@@ -79,6 +108,36 @@ public class MainVaultTest {
         main.stop();
     }
 
+    @Test
+    public void testMainAwsProfileFluent() throws Exception {
+        Main main = new Main();
+        main.configure().vault().aws()
+                .withAccessKey("myKey")
+                .withSecretKey("mySecret")
+                .withRegion("myRegion")
+                .withDefaultCredentialsProvider(false)
+                .withProfileCredentialsProvider(true)
+                .withProfileName("jack")
+                .end();
+
+        main.start();
+
+        CamelContext context = main.getCamelContext();
+        assertNotNull(context);
+
+        AwsVaultConfiguration cfg = context.getVaultConfiguration().aws();
+        assertNotNull(cfg);
+
+        Assertions.assertEquals("myKey", cfg.getAccessKey());
+        Assertions.assertEquals("mySecret", cfg.getSecretKey());
+        Assertions.assertEquals("myRegion", cfg.getRegion());
+        Assertions.assertEquals(false, cfg.isDefaultCredentialsProvider());
+        Assertions.assertEquals(true, cfg.isProfileCredentialsProvider());
+        Assertions.assertEquals("jack", cfg.getProfileName());
+
+        main.stop();
+    }
+
     @Test
     public void testMainGcp() throws Exception {
         Main main = new Main();