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

tdiesler pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 19358623a3d2 CAMEL-24236: camel-cyberark-vault - add support for 
cyberark policies
19358623a3d2 is described below

commit 19358623a3d2a8bfe3f3012e4afaaa5c61a642b3
Author: Thomas Diesler <[email protected]>
AuthorDate: Wed Jul 22 10:47:34 2026 +0200

    CAMEL-24236: camel-cyberark-vault - add support for cyberark policies
    
    Closes #24236
    
    Signed-off-by: Thomas Diesler <[email protected]>
    
    * Update method on how to setup Conjur and obtain an API key (i.e. file not 
server logs)
    * Update tests to install their respective policy
---
 .../catalog/docs/cyberark-vault-component.adoc     |  16 ++-
 components/camel-cyberark-vault/pom.xml            |  16 +++
 .../src/main/docs/cyberark-vault-component.adoc    |  16 ++-
 .../vault/integration/CyberArkTestSupport.java     | 121 +++++++++++++++++++++
 .../CyberArkVaultMultipleSecretsIT.java            |  70 ++----------
 .../vault/integration/CyberArkVaultProducerIT.java |  69 ++----------
 .../CyberArkVaultPropertiesSourceIT.java           | 112 +++++--------------
 .../component/cyberark/vault/integration/README.md |  36 +++---
 8 files changed, 225 insertions(+), 231 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/cyberark-vault-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/cyberark-vault-component.adoc
index 1c334378e889..7f806962a634 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/cyberark-vault-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/cyberark-vault-component.adoc
@@ -597,21 +597,27 @@ The easiest way to get started is using the official 
https://github.com/cyberark
 git clone https://github.com/cyberark/conjur-quickstart.git
 cd conjur-quickstart
 
+# Generate the master key
+docker compose run --no-deps --rm conjur data-key generate > data_key
+
+# Load master key as an environment variable
+export CONJUR_DATA_KEY="$(< data_key)"
+
 # Start Conjur and database
 docker-compose up -d
 
-# Wait for services to be ready
-sleep 15
+# Create an admin account (in another terminal)
+docker compose exec conjur conjurctl account create myConjurAccount > 
admin_data
 
-# The admin API key will be displayed in the logs
-docker-compose logs conjur_server | grep "admin API key"
+# The admin API key will be in the admin_data file
+cat admin_data | grep "API key"
 ----
 
 Default connection details:
 - **URL**: `http://localhost:8080`
 - **Account**: `myConjurAccount`
 - **Username**: `admin`
-- **API Key**: Check the container logs (see command above)
+- **API Key**: See admin_data
 
 ==== Step 2: Load Conjur Policy
 
diff --git a/components/camel-cyberark-vault/pom.xml 
b/components/camel-cyberark-vault/pom.xml
index f500069073ba..7d8d4399b6b2 100644
--- a/components/camel-cyberark-vault/pom.xml
+++ b/components/camel-cyberark-vault/pom.xml
@@ -65,4 +65,20 @@
            <version>${mockito-version}</version>
         </dependency>
     </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <configuration>
+                    <systemPropertyVariables>
+                        
<camel.cyberark.url>http://localhost:8080</camel.cyberark.url>
+                        
<camel.cyberark.account>myConjurAccount</camel.cyberark.account>
+                        
<camel.cyberark.username>admin</camel.cyberark.username>
+                        
<!--camel.cyberark.apiKey>your-api-key</camel.cyberark.apiKey-->
+                    </systemPropertyVariables>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>
diff --git 
a/components/camel-cyberark-vault/src/main/docs/cyberark-vault-component.adoc 
b/components/camel-cyberark-vault/src/main/docs/cyberark-vault-component.adoc
index 1c334378e889..7f806962a634 100644
--- 
a/components/camel-cyberark-vault/src/main/docs/cyberark-vault-component.adoc
+++ 
b/components/camel-cyberark-vault/src/main/docs/cyberark-vault-component.adoc
@@ -597,21 +597,27 @@ The easiest way to get started is using the official 
https://github.com/cyberark
 git clone https://github.com/cyberark/conjur-quickstart.git
 cd conjur-quickstart
 
+# Generate the master key
+docker compose run --no-deps --rm conjur data-key generate > data_key
+
+# Load master key as an environment variable
+export CONJUR_DATA_KEY="$(< data_key)"
+
 # Start Conjur and database
 docker-compose up -d
 
-# Wait for services to be ready
-sleep 15
+# Create an admin account (in another terminal)
+docker compose exec conjur conjurctl account create myConjurAccount > 
admin_data
 
-# The admin API key will be displayed in the logs
-docker-compose logs conjur_server | grep "admin API key"
+# The admin API key will be in the admin_data file
+cat admin_data | grep "API key"
 ----
 
 Default connection details:
 - **URL**: `http://localhost:8080`
 - **Account**: `myConjurAccount`
 - **Username**: `admin`
-- **API Key**: Check the container logs (see command above)
+- **API Key**: See admin_data
 
 ==== Step 2: Load Conjur Policy
 
diff --git 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkTestSupport.java
 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkTestSupport.java
new file mode 100644
index 000000000000..99ef4f637057
--- /dev/null
+++ 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkTestSupport.java
@@ -0,0 +1,121 @@
+/*
+ * 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.integration;
+
+import java.net.URI;
+import java.net.URLEncoder;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit6.CamelTestSupport;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+abstract class CyberArkTestSupport extends CamelTestSupport {
+
+    static final Logger LOG = 
LoggerFactory.getLogger(CyberArkTestSupport.class);
+
+    static HttpClient httpClient;
+    static String authToken;
+
+    @EndpointInject("mock:result")
+    MockEndpoint mockResult;
+
+    @BeforeAll
+    public static void beforeAll() throws Exception {
+        httpClient = HttpClient.newBuilder()
+                .connectTimeout(Duration.ofSeconds(10))
+                .build();
+
+        authToken = authenticate();
+    }
+
+    @AfterAll
+    public static void afterAll() throws Exception {
+        authToken = null;
+        httpClient = null;
+    }
+
+    private static String authenticate() throws Exception {
+        String url = String.format("%s/authn/%s/%s/authenticate",
+                System.getProperty("camel.cyberark.url"),
+                System.getProperty("camel.cyberark.account"),
+                System.getProperty("camel.cyberark.username"));
+
+        HttpRequest request = HttpRequest.newBuilder()
+                .uri(URI.create(url))
+                .header("Content-Type", "text/plain")
+                .header("Accept-Encoding", "base64")
+                
.POST(HttpRequest.BodyPublishers.ofString(System.getProperty("camel.cyberark.apiKey")))
+                .build();
+
+        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
+        requireSuccess("Authenticate", response);
+
+        return response.body();
+    }
+
+    static void loadPolicy(String policy) throws Exception {
+
+        String policyUrl = String.format("%s/policies/%s/policy/%s",
+                System.getProperty("camel.cyberark.url"),
+                System.getProperty("camel.cyberark.account"),
+                URLEncoder.encode("root", StandardCharsets.UTF_8));
+
+        HttpRequest request = HttpRequest.newBuilder()
+                .uri(URI.create(policyUrl))
+                .header("Authorization", "Token token=\"" + authToken + "\"")
+                .header("Content-Type", "text/plain")
+                .method("PATCH", HttpRequest.BodyPublishers.ofString(policy))
+                .build();
+
+        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
+        requireSuccess("Load policy", response);
+    }
+
+    static void createSecret(String secretId, String secretValue) throws 
Exception {
+        String url = String.format("%s/secrets/%s/variable/%s",
+                System.getProperty("camel.cyberark.url"),
+                System.getProperty("camel.cyberark.account"),
+                URLEncoder.encode(secretId, StandardCharsets.UTF_8));
+
+        HttpRequest request = HttpRequest.newBuilder()
+                .uri(URI.create(url))
+                .header("Authorization", "Token token=\"" + authToken + "\"")
+                .header("Content-Type", "application/octet-stream")
+                .POST(HttpRequest.BodyPublishers.ofString(secretValue))
+                .build();
+
+        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
+        requireSuccess("Created secret", response);
+    }
+
+    static void requireSuccess(String op, HttpResponse<String> response) {
+        if (response.statusCode() < 200 || response.statusCode() >= 300) {
+            throw new IllegalStateException(
+                    String.format("%s failed: HTTP %d: %s", op, 
response.statusCode(), response.body()));
+        }
+        LOG.info("{} ok - HTTP {}", op, response.statusCode());
+    }
+}
diff --git 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultMultipleSecretsIT.java
 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultMultipleSecretsIT.java
index 36ec414e344a..0840fa0251f8 100644
--- 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultMultipleSecretsIT.java
+++ 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultMultipleSecretsIT.java
@@ -16,30 +16,19 @@
  */
 package org.apache.camel.component.cyberark.vault.integration;
 
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.nio.charset.StandardCharsets;
-import java.time.Duration;
-import java.util.Base64;
-
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit6.CamelTestSupport;
 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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Integration test demonstrating multiple secret retrieval in a single route
  */
 // Must be manually tested. Provide CyberArk Conjur connection details using 
system properties:
 // -Dcamel.cyberark.url=http://localhost:8080
-// -Dcamel.cyberark.account=myAccount
+// -Dcamel.cyberark.account=myConjurAccount
 // -Dcamel.cyberark.username=admin
 // -Dcamel.cyberark.apiKey=your-api-key
 @EnabledIfSystemProperties({
@@ -52,21 +41,18 @@ import org.slf4j.LoggerFactory;
         @EnabledIfSystemProperty(named = "camel.cyberark.apiKey", matches = 
".*",
                                  disabledReason = "CyberArk Conjur API key not 
provided")
 })
-public class CyberArkVaultMultipleSecretsIT extends CamelTestSupport {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(CyberArkVaultMultipleSecretsIT.class);
-
-    private static HttpClient httpClient;
-    private static String authToken;
+public class CyberArkVaultMultipleSecretsIT extends CyberArkTestSupport {
 
     @BeforeAll
     public static void setupSecrets() throws Exception {
-        httpClient = HttpClient.newBuilder()
-                .connectTimeout(Duration.ofSeconds(10))
-                .build();
 
-        // Authenticate
-        authToken = authenticate();
+        // Declare variables
+        loadPolicy("""
+                - !variable app/config
+                - !variable db/primary
+                - !variable db/replica
+                - !variable cache/redis
+                """);
 
         // Create multiple secrets for testing
         createSecret("app/config", 
"{\"port\":\"8080\",\"host\":\"localhost\",\"protocol\":\"https\"}");
@@ -75,44 +61,6 @@ public class CyberArkVaultMultipleSecretsIT extends 
CamelTestSupport {
         createSecret("cache/redis", 
"{\"host\":\"redis.example.com\",\"port\":\"6379\"}");
     }
 
-    private static String authenticate() throws Exception {
-        String url = String.format("%s/authn/%s/%s/authenticate",
-                System.getProperty("camel.cyberark.url"),
-                System.getProperty("camel.cyberark.account"),
-                System.getProperty("camel.cyberark.username"));
-
-        HttpRequest request = HttpRequest.newBuilder()
-                .uri(URI.create(url))
-                .header("Content-Type", "text/plain")
-                
.POST(HttpRequest.BodyPublishers.ofString(System.getProperty("camel.cyberark.apiKey")))
-                .build();
-
-        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-        return response.body();
-    }
-
-    private static void createSecret(String secretId, String secretValue) {
-        try {
-            String url = String.format("%s/secrets/%s/variable/%s",
-                    System.getProperty("camel.cyberark.url"),
-                    System.getProperty("camel.cyberark.account"),
-                    secretId);
-
-            HttpRequest request = HttpRequest.newBuilder()
-                    .uri(URI.create(url))
-                    .header("Authorization", "Token token=\"" + 
Base64.getEncoder()
-                            
.encodeToString(authToken.getBytes(StandardCharsets.UTF_8)) + "\"")
-                    .header("Content-Type", "application/octet-stream")
-                    .POST(HttpRequest.BodyPublishers.ofString(secretValue))
-                    .build();
-
-            HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-            LOG.info("Created secret '{}': HTTP {}", secretId, 
response.statusCode());
-        } catch (Exception e) {
-            LOG.warn("Could not create secret '{}': {}", secretId, 
e.getMessage());
-        }
-    }
-
     @Test
     public void testMultipleSecretsInSingleRoute() throws Exception {
         
context.getVaultConfiguration().cyberark().setUrl(System.getProperty("camel.cyberark.url"));
diff --git 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultProducerIT.java
 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultProducerIT.java
index 0237c6c45b29..440167c20c6b 100644
--- 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultProducerIT.java
+++ 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultProducerIT.java
@@ -16,33 +16,20 @@
  */
 package org.apache.camel.component.cyberark.vault.integration;
 
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.nio.charset.StandardCharsets;
-import java.time.Duration;
-import java.util.Base64;
-
-import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cyberark.vault.CyberArkVaultConstants;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit6.CamelTestSupport;
 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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 // Must be manually tested. Provide CyberArk Conjur connection details using 
system properties:
 // -Dcamel.cyberark.url=http://localhost:8080
-// -Dcamel.cyberark.account=myAccount
+// -Dcamel.cyberark.account=myConjurAccount
 // -Dcamel.cyberark.username=admin
 // -Dcamel.cyberark.apiKey=your-api-key
 @EnabledIfSystemProperties({
@@ -55,64 +42,22 @@ import static 
org.junit.jupiter.api.Assertions.assertNotNull;
         @EnabledIfSystemProperty(named = "camel.cyberark.apiKey", matches = 
".*",
                                  disabledReason = "CyberArk Conjur API key not 
provided")
 })
-public class CyberArkVaultProducerIT extends CamelTestSupport {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(CyberArkVaultProducerIT.class);
-
-    @EndpointInject("mock:result")
-    private MockEndpoint mockResult;
-
-    private static HttpClient httpClient;
-    private static String authToken;
+public class CyberArkVaultProducerIT extends CyberArkTestSupport {
 
     @BeforeAll
     public static void setupSecrets() throws Exception {
-        httpClient = HttpClient.newBuilder()
-                .connectTimeout(Duration.ofSeconds(10))
-                .build();
-
-        // Authenticate
-        String url = String.format("%s/authn/%s/%s/authenticate",
-                System.getProperty("camel.cyberark.url"),
-                System.getProperty("camel.cyberark.account"),
-                System.getProperty("camel.cyberark.username"));
 
-        HttpRequest request = HttpRequest.newBuilder()
-                .uri(URI.create(url))
-                .header("Content-Type", "text/plain")
-                
.POST(HttpRequest.BodyPublishers.ofString(System.getProperty("camel.cyberark.apiKey")))
-                .build();
-
-        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-        authToken = response.body();
+        // Declare variables
+        loadPolicy("""
+                - !variable test/secret
+                - !variable production/database
+                """);
 
         // Create test secrets
         createSecret("test/secret", "mySecretValue");
         createSecret("production/database", 
"{\"username\":\"prod-user\",\"password\":\"prod-pass\"}");
     }
 
-    private static void createSecret(String secretId, String secretValue) {
-        try {
-            String url = String.format("%s/secrets/%s/variable/%s",
-                    System.getProperty("camel.cyberark.url"),
-                    System.getProperty("camel.cyberark.account"),
-                    secretId);
-
-            HttpRequest request = HttpRequest.newBuilder()
-                    .uri(URI.create(url))
-                    .header("Authorization", "Token token=\"" + 
Base64.getEncoder()
-                            
.encodeToString(authToken.getBytes(StandardCharsets.UTF_8)) + "\"")
-                    .header("Content-Type", "application/octet-stream")
-                    .POST(HttpRequest.BodyPublishers.ofString(secretValue))
-                    .build();
-
-            HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-            LOG.info("Created secret '{}': HTTP {}", secretId, 
response.statusCode());
-        } catch (Exception e) {
-            LOG.warn("Could not create secret '{}': {}", secretId, 
e.getMessage());
-        }
-    }
-
     @Test
     public void testRetrieveSecret() throws Exception {
         mockResult.expectedMessageCount(1);
diff --git 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultPropertiesSourceIT.java
 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultPropertiesSourceIT.java
index 856fb6b74611..ebde130085ff 100644
--- 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultPropertiesSourceIT.java
+++ 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/CyberArkVaultPropertiesSourceIT.java
@@ -16,31 +16,20 @@
  */
 package org.apache.camel.component.cyberark.vault.integration;
 
-import java.io.IOException;
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.nio.charset.StandardCharsets;
-import java.time.Duration;
-import java.util.Base64;
-
 import org.apache.camel.FailedToCreateRouteException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit6.CamelTestSupport;
+import org.apache.camel.vault.CyberArkVaultConfiguration;
 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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 // Must be manually tested. Provide CyberArk Conjur connection details using 
system properties:
 // -Dcamel.cyberark.url=http://localhost:8080
-// -Dcamel.cyberark.account=myAccount
+// -Dcamel.cyberark.account=myConjurAccount
 // -Dcamel.cyberark.username=admin
 // -Dcamel.cyberark.apiKey=your-api-key
 @EnabledIfSystemProperties({
@@ -53,21 +42,17 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
         @EnabledIfSystemProperty(named = "camel.cyberark.apiKey", matches = 
".*",
                                  disabledReason = "CyberArk Conjur API key not 
provided")
 })
-public class CyberArkVaultPropertiesSourceIT extends CamelTestSupport {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(CyberArkVaultPropertiesSourceIT.class);
-
-    private static HttpClient httpClient;
-    private static String authToken;
+public class CyberArkVaultPropertiesSourceIT extends CyberArkTestSupport {
 
     @BeforeAll
     public static void init() throws Exception {
-        httpClient = HttpClient.newBuilder()
-                .connectTimeout(Duration.ofSeconds(10))
-                .build();
 
-        // Authenticate and get token
-        authToken = authenticate();
+        // Declare variables
+        loadPolicy("""
+                - !variable database
+                - !variable api/credentials
+                - !variable simple-secret
+                """);
 
         // Create test secrets in Conjur
         createSecret("database", 
"{\"username\":\"dbuser\",\"password\":\"dbpass\",\"host\":\"localhost\"}");
@@ -75,55 +60,13 @@ public class CyberArkVaultPropertiesSourceIT extends 
CamelTestSupport {
         createSecret("simple-secret", "my-simple-value");
     }
 
-    private static String authenticate() throws IOException, 
InterruptedException {
-        String url = String.format("%s/authn/%s/%s/authenticate",
-                System.getProperty("camel.cyberark.url"),
-                System.getProperty("camel.cyberark.account"),
-                System.getProperty("camel.cyberark.username"));
-
-        HttpRequest request = HttpRequest.newBuilder()
-                .uri(URI.create(url))
-                .header("Content-Type", "text/plain")
-                
.POST(HttpRequest.BodyPublishers.ofString(System.getProperty("camel.cyberark.apiKey")))
-                .build();
-
-        HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-
-        if (response.statusCode() == 200) {
-            return response.body();
-        }
-        throw new IOException("Failed to authenticate: " + 
response.statusCode());
-    }
-
-    private static void createSecret(String secretId, String secretValue) {
-        try {
-            String url = String.format("%s/secrets/%s/variable/%s",
-                    System.getProperty("camel.cyberark.url"),
-                    System.getProperty("camel.cyberark.account"),
-                    secretId);
-
-            HttpRequest request = HttpRequest.newBuilder()
-                    .uri(URI.create(url))
-                    .header("Authorization", "Token token=\"" + 
Base64.getEncoder()
-                            
.encodeToString(authToken.getBytes(StandardCharsets.UTF_8)) + "\"")
-                    .header("Content-Type", "application/octet-stream")
-                    .POST(HttpRequest.BodyPublishers.ofString(secretValue))
-                    .build();
-
-            HttpResponse<String> response = httpClient.send(request, 
HttpResponse.BodyHandlers.ofString());
-            LOG.info("Created secret '{}': HTTP {}", secretId, 
response.statusCode());
-        } catch (Exception e) {
-            LOG.warn("Could not create secret '{}': {}", secretId, 
e.getMessage());
-            // Continue anyway - some tests expect missing secrets
-        }
-    }
-
     @Test
     public void testSimpleSecretRetrieval() throws Exception {
-        
context.getVaultConfiguration().cyberark().setUrl(System.getProperty("camel.cyberark.url"));
-        
context.getVaultConfiguration().cyberark().setAccount(System.getProperty("camel.cyberark.account"));
-        
context.getVaultConfiguration().cyberark().setUsername(System.getProperty("camel.cyberark.username"));
-        
context.getVaultConfiguration().cyberark().setApiKey(System.getProperty("camel.cyberark.apiKey"));
+        CyberArkVaultConfiguration cyberark = 
context.getVaultConfiguration().cyberark();
+        cyberark.setUrl(System.getProperty("camel.cyberark.url"));
+        cyberark.setAccount(System.getProperty("camel.cyberark.account"));
+        cyberark.setUsername(System.getProperty("camel.cyberark.username"));
+        cyberark.setApiKey(System.getProperty("camel.cyberark.apiKey"));
 
         context.addRoutes(new RouteBuilder() {
             @Override
@@ -142,10 +85,11 @@ public class CyberArkVaultPropertiesSourceIT extends 
CamelTestSupport {
 
     @Test
     public void testJsonFieldExtraction() throws Exception {
-        
context.getVaultConfiguration().cyberark().setUrl(System.getProperty("camel.cyberark.url"));
-        
context.getVaultConfiguration().cyberark().setAccount(System.getProperty("camel.cyberark.account"));
-        
context.getVaultConfiguration().cyberark().setUsername(System.getProperty("camel.cyberark.username"));
-        
context.getVaultConfiguration().cyberark().setApiKey(System.getProperty("camel.cyberark.apiKey"));
+        CyberArkVaultConfiguration cyberark = 
context.getVaultConfiguration().cyberark();
+        cyberark.setUrl(System.getProperty("camel.cyberark.url"));
+        cyberark.setAccount(System.getProperty("camel.cyberark.account"));
+        cyberark.setUsername(System.getProperty("camel.cyberark.username"));
+        cyberark.setApiKey(System.getProperty("camel.cyberark.apiKey"));
 
         context.addRoutes(new RouteBuilder() {
             @Override
@@ -168,10 +112,11 @@ public class CyberArkVaultPropertiesSourceIT extends 
CamelTestSupport {
 
     @Test
     public void testDefaultValue() throws Exception {
-        
context.getVaultConfiguration().cyberark().setUrl(System.getProperty("camel.cyberark.url"));
-        
context.getVaultConfiguration().cyberark().setAccount(System.getProperty("camel.cyberark.account"));
-        
context.getVaultConfiguration().cyberark().setUsername(System.getProperty("camel.cyberark.username"));
-        
context.getVaultConfiguration().cyberark().setApiKey(System.getProperty("camel.cyberark.apiKey"));
+        CyberArkVaultConfiguration cyberark = 
context.getVaultConfiguration().cyberark();
+        cyberark.setUrl(System.getProperty("camel.cyberark.url"));
+        cyberark.setAccount(System.getProperty("camel.cyberark.account"));
+        cyberark.setUsername(System.getProperty("camel.cyberark.username"));
+        cyberark.setApiKey(System.getProperty("camel.cyberark.apiKey"));
 
         context.addRoutes(new RouteBuilder() {
             @Override
@@ -190,10 +135,11 @@ public class CyberArkVaultPropertiesSourceIT extends 
CamelTestSupport {
 
     @Test
     public void testFieldWithDefaultValue() throws Exception {
-        
context.getVaultConfiguration().cyberark().setUrl(System.getProperty("camel.cyberark.url"));
-        
context.getVaultConfiguration().cyberark().setAccount(System.getProperty("camel.cyberark.account"));
-        
context.getVaultConfiguration().cyberark().setUsername(System.getProperty("camel.cyberark.username"));
-        
context.getVaultConfiguration().cyberark().setApiKey(System.getProperty("camel.cyberark.apiKey"));
+        CyberArkVaultConfiguration cyberark = 
context.getVaultConfiguration().cyberark();
+        cyberark.setUrl(System.getProperty("camel.cyberark.url"));
+        cyberark.setAccount(System.getProperty("camel.cyberark.account"));
+        cyberark.setUsername(System.getProperty("camel.cyberark.username"));
+        cyberark.setApiKey(System.getProperty("camel.cyberark.apiKey"));
 
         context.addRoutes(new RouteBuilder() {
             @Override
diff --git 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/README.md
 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/README.md
index eb004ebc56dc..cc21a3a0c770 100644
--- 
a/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/README.md
+++ 
b/components/camel-cyberark-vault/src/test/java/org/apache/camel/component/cyberark/vault/integration/README.md
@@ -44,7 +44,7 @@ Tests for complex scenarios with multiple secrets:
 The tests require the following system properties:
 
 - `camel.cyberark.url` - CyberArk Conjur URL (e.g., `http://localhost:8080`)
-- `camel.cyberark.account` - Conjur account name (e.g., `myAccount`)
+- `camel.cyberark.account` - Conjur account name (e.g., `myConjurAccount`)
 - `camel.cyberark.username` - Admin username (e.g., `admin`)
 - `camel.cyberark.apiKey` - Admin API key
 
@@ -54,7 +54,7 @@ The tests require the following system properties:
 cd components/camel-cyberark-vault
 mvn clean verify \
   -Dcamel.cyberark.url=http://localhost:8080 \
-  -Dcamel.cyberark.account=myAccount \
+  -Dcamel.cyberark.account=myConjurAccount \
   -Dcamel.cyberark.username=admin \
   -Dcamel.cyberark.apiKey=your-api-key
 ```
@@ -64,7 +64,7 @@ mvn clean verify \
 ```bash
 mvn clean verify -Dit.test=CyberArkVaultPropertiesSourceIT \
   -Dcamel.cyberark.url=http://localhost:8080 \
-  -Dcamel.cyberark.account=myAccount \
+  -Dcamel.cyberark.account=myConjurAccount \
   -Dcamel.cyberark.username=admin \
   -Dcamel.cyberark.apiKey=your-api-key
 ```
@@ -74,7 +74,7 @@ mvn clean verify -Dit.test=CyberArkVaultPropertiesSourceIT \
 ```bash
 mvn clean verify 
-Dit.test=CyberArkVaultPropertiesSourceIT#testSimpleSecretRetrieval \
   -Dcamel.cyberark.url=http://localhost:8080 \
-  -Dcamel.cyberark.account=myAccount \
+  -Dcamel.cyberark.account=myConjurAccount \
   -Dcamel.cyberark.username=admin \
   -Dcamel.cyberark.apiKey=your-api-key
 ```
@@ -98,21 +98,27 @@ Use the official CyberArk Conjur quickstart setup:
 git clone https://github.com/cyberark/conjur-quickstart.git
 cd conjur-quickstart
 
+# Generate the master key 
+docker compose run --no-deps --rm conjur data-key generate > data_key
+
+# Load master key as an environment variable
+export CONJUR_DATA_KEY="$(< data_key)"
+
 # Start Conjur and database
-docker-compose up -d
+docker compose up -d
 
-# Wait for services to be ready
-sleep 10
+# Create an admin account (in another terminal)
+docker compose exec conjur conjurctl account create myConjurAccount > 
admin_data
 
-# The admin API key will be displayed in the logs
-docker-compose logs conjur | grep "admin API key"
+# The admin API key will be in the admin_data file
+cat admin_data | grep "API key"
 ```
 
 Default connection details:
 - **URL**: `http://localhost:8080`
 - **Account**: `myConjurAccount`
 - **Username**: `admin`
-- **API Key**: Check container logs
+- **API Key**: See admin_data
 
 ### Option 2: Using Existing Conjur Instance
 
@@ -219,7 +225,7 @@ If you see messages like `CyberArk Conjur URL not 
provided`, ensure you're passi
 ```bash
 mvn verify \
   -Dcamel.cyberark.url=http://localhost:8080 \
-  -Dcamel.cyberark.account=myAccount \
+  -Dcamel.cyberark.account=myConjurAccount \
   -Dcamel.cyberark.username=admin \
   -Dcamel.cyberark.apiKey=your-api-key
 ```
@@ -287,14 +293,14 @@ jobs:
           # Wait for Conjur to start
           sleep 10
           # Create account and extract API key
-          API_KEY=$(docker exec conjur conjurctl account create myAccount | 
grep "API key" | awk '{print $NF}')
+          API_KEY=$(docker exec conjur conjurctl account create 
myConjurAccount | grep "API key" | awk '{print $NF}')
           echo "CONJUR_API_KEY=$API_KEY" >> $GITHUB_ENV
 
       - name: Run Integration Tests
         run: |
           mvn clean verify \
             -Dcamel.cyberark.url=http://localhost:8080 \
-            -Dcamel.cyberark.account=myAccount \
+            -Dcamel.cyberark.account=myConjurAccount \
             -Dcamel.cyberark.username=admin \
             -Dcamel.cyberark.apiKey=${{ env.CONJUR_API_KEY }}
 ```
@@ -318,10 +324,10 @@ pipeline {
         stage('Run Integration Tests') {
             steps {
                 sh '''
-                    API_KEY=$(docker exec conjur conjurctl account create 
myAccount | grep "API key" | awk '{print $NF}')
+                    API_KEY=$(docker exec conjur conjurctl account create 
myConjurAccount | grep "API key" | awk '{print $NF}')
                     mvn clean verify \
                         -Dcamel.cyberark.url=http://localhost:8080 \
-                        -Dcamel.cyberark.account=myAccount \
+                        -Dcamel.cyberark.account=myConjurAccount \
                         -Dcamel.cyberark.username=admin \
                         -Dcamel.cyberark.apiKey=$API_KEY
                 '''


Reply via email to