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 2ef4153bae4 CAMEL-22664 - Camel-Cyberark-vault Spring Boot: Support 
Properties function in Spring Boot (#1562)
2ef4153bae4 is described below

commit 2ef4153bae418e079056bfd4508f6b65cf4fb174
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Nov 6 14:21:42 2025 +0100

    CAMEL-22664 - Camel-Cyberark-vault Spring Boot: Support Properties function 
in Spring Boot (#1562)
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../SpringBootCyberArkVaultPropertiesParser.java   | 106 ++++++++++++++++
 .../src/main/resources/META-INF/spring.factories   |  19 +++
 .../springboot/EarlyResolvedPropertiesTest.java    | 119 ++++++++++++++++++
 .../src/main/docs/spring-boot.json                 |  60 +++++++++
 .../boot/vault/CyberArkVaultAutoConfiguration.java |  48 +++++++
 .../CyberArkVaultConfigurationProperties.java      | 140 +++++++++++++++++++++
 ...rk.boot.autoconfigure.AutoConfiguration.imports |   1 +
 .../boot/vault/CyberArkVaultConfigurationTest.java |  52 ++++++++
 8 files changed, 545 insertions(+)

diff --git 
a/components-starter/camel-cyberark-vault-starter/src/main/java/org/apache/camel/component/cyberark/vault/springboot/SpringBootCyberArkVaultPropertiesParser.java
 
b/components-starter/camel-cyberark-vault-starter/src/main/java/org/apache/camel/component/cyberark/vault/springboot/SpringBootCyberArkVaultPropertiesParser.java
new file mode 100644
index 00000000000..c6be6f787f4
--- /dev/null
+++ 
b/components-starter/camel-cyberark-vault-starter/src/main/java/org/apache/camel/component/cyberark/vault/springboot/SpringBootCyberArkVaultPropertiesParser.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cyberark.vault.springboot;
+
+import org.apache.camel.RuntimeCamelException;
+import 
org.apache.camel.component.cyberark.vault.CyberArkVaultPropertiesFunction;
+import org.apache.camel.component.cyberark.vault.client.ConjurClient;
+import org.apache.camel.component.cyberark.vault.client.ConjurClientFactory;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import 
org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
+import org.springframework.boot.origin.OriginTrackedValue;
+import org.springframework.context.ApplicationListener;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.PropertiesPropertySource;
+import org.springframework.core.env.PropertySource;
+
+import java.util.Properties;
+
+public class SpringBootCyberArkVaultPropertiesParser implements 
ApplicationListener<ApplicationEnvironmentPreparedEvent> {
+    private static final Logger LOG = 
LoggerFactory.getLogger(SpringBootCyberArkVaultPropertiesParser.class);
+
+    @Override
+    public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
+        ConjurClient client;
+        ConfigurableEnvironment environment = event.getEnvironment();
+        if 
(Boolean.parseBoolean(environment.getProperty("camel.component.cyberark-vault.early-resolve-properties")))
 {
+            String url = environment.getProperty("camel.vault.cyberark.url");
+            String account = 
environment.getProperty("camel.vault.cyberark.account");
+            String username = 
environment.getProperty("camel.vault.cyberark.username");
+            String password = 
environment.getProperty("camel.vault.cyberark.password");
+            String apiKey = 
environment.getProperty("camel.vault.cyberark.apiKey");
+            String authToken = 
environment.getProperty("camel.vault.cyberark.authToken");
+
+            if (ObjectHelper.isNotEmpty(url) && 
ObjectHelper.isNotEmpty(account)) {
+                // Create Conjur client based on authentication method
+                if (ObjectHelper.isNotEmpty(authToken)) {
+                    // Use pre-authenticated token
+                    client = ConjurClientFactory.createWithToken(url, account, 
authToken);
+                } else if (ObjectHelper.isNotEmpty(apiKey) && 
ObjectHelper.isNotEmpty(username)) {
+                    // Use API key authentication
+                    client = ConjurClientFactory.createWithApiKey(url, 
account, username, apiKey);
+                } else if (ObjectHelper.isNotEmpty(username) && 
ObjectHelper.isNotEmpty(password)) {
+                    // Use username/password authentication
+                    client = ConjurClientFactory.createWithCredentials(url, 
account, username, password);
+                } else {
+                    throw new RuntimeCamelException(
+                            "Using the CyberArk Conjur Vault Properties 
Function requires authentication credentials (authToken, apiKey, or 
username/password)");
+                }
+            } else {
+                throw new RuntimeCamelException(
+                        "Using the CyberArk Conjur Vault Properties Function 
requires setting URL and account as application properties or environment 
variables");
+            }
+
+            CyberArkVaultPropertiesFunction cyberArkVaultPropertiesFunction = 
new CyberArkVaultPropertiesFunction(client);
+
+            final Properties props = new Properties();
+            for (PropertySource mutablePropertySources : 
event.getEnvironment().getPropertySources()) {
+                if (mutablePropertySources instanceof MapPropertySource 
mapPropertySource) {
+                    mapPropertySource.getSource().forEach((key, value) -> {
+                        String stringValue = null;
+                        if ((value instanceof OriginTrackedValue 
originTrackedValue &&
+                                originTrackedValue.getValue() instanceof 
String v)) {
+                            stringValue = v;
+                        } else if (value instanceof String v) {
+                            stringValue = v;
+                        }
+
+                        if (stringValue != null &&
+                                stringValue.startsWith("{{cyberark:") &&
+                                stringValue.endsWith("}}")) {
+                            LOG.debug("decrypting and overriding property {}", 
key);
+                            try {
+                                String element = 
cyberArkVaultPropertiesFunction.apply(stringValue
+                                        .replace("{{cyberark:", "")
+                                        .replace("}}", ""));
+                                props.put(key, element);
+                            } catch (Exception e) {
+                                // Log and do nothing
+                                LOG.debug("failed to parse property {}. This 
exception is ignored.", key, e);
+                            }
+                        }
+                    });
+                }
+            }
+
+            environment.getPropertySources().addFirst(new 
PropertiesPropertySource("overridden-camel-cyberark-vault-properties", props));
+        }
+    }
+}
diff --git 
a/components-starter/camel-cyberark-vault-starter/src/main/resources/META-INF/spring.factories
 
b/components-starter/camel-cyberark-vault-starter/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000000..a904bb7cd9d
--- /dev/null
+++ 
b/components-starter/camel-cyberark-vault-starter/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+org.springframework.context.ApplicationListener=\
+  
org.apache.camel.component.cyberark.vault.springboot.SpringBootCyberArkVaultPropertiesParser
diff --git 
a/components-starter/camel-cyberark-vault-starter/src/test/java/org/apache/camel/component/cyberark/vault/springboot/EarlyResolvedPropertiesTest.java
 
b/components-starter/camel-cyberark-vault-starter/src/test/java/org/apache/camel/component/cyberark/vault/springboot/EarlyResolvedPropertiesTest.java
new file mode 100644
index 00000000000..05afecdf83a
--- /dev/null
+++ 
b/components-starter/camel-cyberark-vault-starter/src/test/java/org/apache/camel/component/cyberark/vault/springboot/EarlyResolvedPropertiesTest.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cyberark.vault.springboot;
+
+import org.apache.camel.component.cyberark.vault.client.ConjurClient;
+import org.apache.camel.component.cyberark.vault.client.ConjurClientFactory;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperties;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.test.annotation.DirtiesContext;
+
+@CamelSpringBootTest
+@DirtiesContext
+@SpringBootApplication
+@SpringBootTest(
+        classes = { EarlyResolvedPropertiesTest.TestConfiguration.class },
+        properties = {
+                "camel.component.cyberark-vault.early-resolve-properties=true",
+                "early.resolved.property.simple={{cyberark:test/secret}}"
+        })
+
+// Must be manually tested. Provide your own credentials using system 
properties:
+// -Dcamel.vault.test.cyberark.url, -Dcamel.vault.test.cyberark.account,
+// -Dcamel.vault.test.cyberark.username, -Dcamel.vault.test.cyberark.apiKey
+@EnabledIfSystemProperties({
+        @EnabledIfSystemProperty(named = "camel.vault.test.cyberark.url", 
matches = ".*",
+                disabledReason = "CyberArk Conjur URL not provided"),
+        @EnabledIfSystemProperty(named = "camel.vault.test.cyberark.account", 
matches = ".*",
+                disabledReason = "CyberArk Conjur account not provided"),
+        @EnabledIfSystemProperty(named = "camel.vault.test.cyberark.username", 
matches = ".*",
+                disabledReason = "Username not provided"),
+        @EnabledIfSystemProperty(named = "camel.vault.test.cyberark.apiKey", 
matches = ".*",
+                disabledReason = "API key not provided"),
+})
+public class EarlyResolvedPropertiesTest {
+
+    @BeforeAll
+    public static void setup() {
+        String url = System.getProperty("camel.vault.test.cyberark.url");
+        String account = 
System.getProperty("camel.vault.test.cyberark.account");
+        String username = 
System.getProperty("camel.vault.test.cyberark.username");
+        String apiKey = System.getProperty("camel.vault.test.cyberark.apiKey");
+
+        System.setProperty("camel.vault.cyberark.url", url);
+        System.setProperty("camel.vault.cyberark.account", account);
+        System.setProperty("camel.vault.cyberark.username", username);
+        System.setProperty("camel.vault.cyberark.apiKey", apiKey);
+
+        // Create a test secret in CyberArk Conjur
+        ConjurClient client = ConjurClientFactory.createWithApiKey(url, 
account, username, apiKey);
+        try {
+            // Note: Creating secrets in Conjur requires proper permissions 
and policy setup
+            // This is a placeholder - actual secret creation depends on 
Conjur policy configuration
+            // In a real test, you would need to create the secret 
"test/secret" with value "testValue"
+            // through Conjur CLI or API with appropriate permissions
+        } catch (Exception e) {
+            // Log or handle exception
+            System.err.println("Warning: Could not create test secret. Ensure 
'test/secret' exists in Conjur: " + e.getMessage());
+        } finally {
+            try {
+                client.close();
+            } catch (Exception e) {
+                // Ignore
+            }
+        }
+    }
+
+    @AfterAll
+    public static void teardown() {
+        // Clean up test properties
+        System.clearProperty("camel.vault.cyberark.url");
+        System.clearProperty("camel.vault.cyberark.account");
+        System.clearProperty("camel.vault.cyberark.username");
+        System.clearProperty("camel.vault.cyberark.apiKey");
+
+        // Note: CyberArk Conjur secrets cleanup would require proper 
permissions
+        // This is typically handled through policy management rather than 
programmatic deletion
+    }
+
+    @Value("${early.resolved.property.simple}")
+    private String earlyResolvedPropertySimple;
+
+    @Test
+    public void testEarlyResolvedProperties() {
+        // Verify that the property was resolved from CyberArk Conjur vault
+        // The actual value depends on what's stored in the 'test/secret' in 
your Conjur instance
+        Assertions.assertThat(earlyResolvedPropertySimple).isNotNull();
+        Assertions.assertThat(earlyResolvedPropertySimple).isNotEmpty();
+    }
+
+    @Configuration
+    @AutoConfigureBefore(CamelAutoConfiguration.class)
+    public static class TestConfiguration {
+    }
+}
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 42a117c76eb..909f6df371c 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.json
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -145,6 +145,11 @@
       "type": 
"org.apache.camel.spring.boot.vault.AzureVaultConfigurationProperties",
       "sourceType": 
"org.apache.camel.spring.boot.vault.AzureVaultConfigurationProperties"
     },
+    {
+      "name": "camel.vault.cyberark",
+      "type": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
     {
       "name": "camel.vault.gcp",
       "type": 
"org.apache.camel.spring.boot.vault.GcpVaultConfigurationProperties",
@@ -1861,6 +1866,61 @@
       "description": "The Vault Name",
       "sourceType": 
"org.apache.camel.spring.boot.vault.AzureVaultConfigurationProperties"
     },
+    {
+      "name": "camel.vault.cyberark.account",
+      "type": "java.lang.String",
+      "description": "The CyberArk Conjur account name",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.api-key",
+      "type": "java.lang.String",
+      "description": "The API key for authentication",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.auth-token",
+      "type": "java.lang.String",
+      "description": "Pre-authenticated token to use",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.certificate-path",
+      "type": "java.lang.String",
+      "description": "Path to the SSL certificate for verification",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.password",
+      "type": "java.lang.String",
+      "description": "The password for authentication",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.secrets",
+      "type": "java.lang.String",
+      "description": "Specify the secret names (or pattern) to check for 
updates. Multiple secrets can be separated by comma.",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.url",
+      "type": "java.lang.String",
+      "description": "The CyberArk Conjur instance URL",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.username",
+      "type": "java.lang.String",
+      "description": "The username for authentication",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties"
+    },
+    {
+      "name": "camel.vault.cyberark.verify-ssl",
+      "type": "java.lang.Boolean",
+      "description": "Whether to verify SSL certificates",
+      "sourceType": 
"org.apache.camel.spring.boot.vault.CyberArkVaultConfigurationProperties",
+      "defaultValue": true
+    },
     {
       "name": "camel.vault.gcp.project-id",
       "type": "java.lang.String",
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultAutoConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultAutoConfiguration.java
new file mode 100644
index 00000000000..64f693d9f0a
--- /dev/null
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultAutoConfiguration.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.boot.vault;
+
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.vault.CyberArkVaultConfiguration;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnBean(CamelAutoConfiguration.class)
+@EnableConfigurationProperties(CyberArkVaultConfigurationProperties.class)
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+public class CyberArkVaultAutoConfiguration {
+
+    @Bean
+    public CyberArkVaultConfiguration 
cyberarkVaultConfiguration(CyberArkVaultConfigurationProperties config) {
+        CyberArkVaultConfiguration answer = new CyberArkVaultConfiguration();
+        answer.setUrl(config.getUrl());
+        answer.setAccount(config.getAccount());
+        answer.setUsername(config.getUsername());
+        answer.setPassword(config.getPassword());
+        answer.setApiKey(config.getApiKey());
+        answer.setAuthToken(config.getAuthToken());
+        answer.setVerifySsl(config.isVerifySsl());
+        answer.setCertificatePath(config.getCertificatePath());
+        answer.setSecrets(config.getSecrets());
+        return answer;
+    }
+
+}
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationProperties.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationProperties.java
new file mode 100644
index 00000000000..c791f29a59f
--- /dev/null
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationProperties.java
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.boot.vault;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@ConfigurationProperties(prefix = "camel.vault.cyberark")
+public class CyberArkVaultConfigurationProperties {
+
+    /**
+     * The CyberArk Conjur instance URL
+     */
+    private String url;
+
+    /**
+     * The CyberArk Conjur account name
+     */
+    private String account;
+
+    /**
+     * The username for authentication
+     */
+    private String username;
+
+    /**
+     * The password for authentication
+     */
+    private String password;
+
+    /**
+     * The API key for authentication
+     */
+    private String apiKey;
+
+    /**
+     * Pre-authenticated token to use
+     */
+    private String authToken;
+
+    /**
+     * Whether to verify SSL certificates
+     */
+    private boolean verifySsl = true;
+
+    /**
+     * Path to the SSL certificate for verification
+     */
+    private String certificatePath;
+
+    /**
+     * Specify the secret names (or pattern) to check for updates. Multiple 
secrets can be separated by comma.
+     */
+    private String secrets;
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getAccount() {
+        return account;
+    }
+
+    public void setAccount(String account) {
+        this.account = account;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getApiKey() {
+        return apiKey;
+    }
+
+    public void setApiKey(String apiKey) {
+        this.apiKey = apiKey;
+    }
+
+    public String getAuthToken() {
+        return authToken;
+    }
+
+    public void setAuthToken(String authToken) {
+        this.authToken = authToken;
+    }
+
+    public boolean isVerifySsl() {
+        return verifySsl;
+    }
+
+    public void setVerifySsl(boolean verifySsl) {
+        this.verifySsl = verifySsl;
+    }
+
+    public String getCertificatePath() {
+        return certificatePath;
+    }
+
+    public void setCertificatePath(String certificatePath) {
+        this.certificatePath = certificatePath;
+    }
+
+    public String getSecrets() {
+        return secrets;
+    }
+
+    public void setSecrets(String secrets) {
+        this.secrets = secrets;
+    }
+}
diff --git 
a/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 
b/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 251d6b9bcf3..19e4724d726 100644
--- 
a/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ 
b/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -41,3 +41,4 @@ 
org.apache.camel.spring.boot.vault.HashicorpVaultAutoConfiguration
 org.apache.camel.spring.boot.vault.KubernetesVaultAutoConfiguration
 org.apache.camel.spring.boot.vault.KubernetesConfigMapVaultAutoConfiguration
 org.apache.camel.spring.boot.vault.IBMVaultAutoConfiguration
+org.apache.camel.spring.boot.vault.CyberArkVaultAutoConfiguration
diff --git 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationTest.java
 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationTest.java
new file mode 100644
index 00000000000..238b0164a1b
--- /dev/null
+++ 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/CyberArkVaultConfigurationTest.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.boot.vault;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
+
+@DirtiesContext
+@CamelSpringBootTest
+@EnableAutoConfiguration
+@SpringBootTest(classes = { CyberArkVaultConfigurationTest.class }, properties 
= {
+        "camel.vault.cyberark.url=https://conjur.example.com";,
+        "camel.vault.cyberark.account=myAccount",
+        "camel.vault.cyberark.username=myUsername",
+        "camel.vault.cyberark.apiKey=myApiKey",
+        "camel.vault.cyberark.verifySsl=false",
+        "camel.vault.cyberark.secrets=secret1,secret2" })
+public class CyberArkVaultConfigurationTest {
+
+    @Autowired
+    private CamelContext camelContext;
+
+    @Test
+    public void testCyberArkVault() throws Exception {
+        Assertions.assertEquals("https://conjur.example.com";, 
camelContext.getVaultConfiguration().cyberark().getUrl());
+        Assertions.assertEquals("myAccount", 
camelContext.getVaultConfiguration().cyberark().getAccount());
+        Assertions.assertEquals("myUsername", 
camelContext.getVaultConfiguration().cyberark().getUsername());
+        Assertions.assertEquals("myApiKey", 
camelContext.getVaultConfiguration().cyberark().getApiKey());
+        Assertions.assertEquals(false, 
camelContext.getVaultConfiguration().cyberark().isVerifySsl());
+        Assertions.assertEquals("secret1,secret2", 
camelContext.getVaultConfiguration().cyberark().getSecrets());
+    }
+}

Reply via email to