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 2022/03/30 15:11:15 UTC

[camel] branch purge-deleted-secret-val created (now 5c084d7)

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

acosentino pushed a change to branch purge-deleted-secret-val
in repository https://gitbox.apache.org/repos/asf/camel.git.


      at 5c084d7  CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret

This branch includes the following new commits:

     new 290145c  CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret
     new 5c084d7  CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[camel] 01/02: CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch purge-deleted-secret-val
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 290145ca6e8ff3390309e9754e39032bc2cbac4f
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 30 16:55:20 2022 +0200

    CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret
---
 .../camel/component/azure/key/vault/KeyVaultOperation.java  |  3 ++-
 .../camel/component/azure/key/vault/KeyVaultProducer.java   | 12 ++++++++++++
 .../integration/operations/KeyVaultOperationsTest.java      | 13 +++++++++++++
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultOperation.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultOperation.java
index d6fa441..e04d05c 100644
--- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultOperation.java
+++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultOperation.java
@@ -19,5 +19,6 @@ package org.apache.camel.component.azure.key.vault;
 public enum KeyVaultOperation {
     createSecret,
     getSecret,
-    deleteSecret
+    deleteSecret,
+    purgeDeletedSecret
 }
diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultProducer.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultProducer.java
index 5b55f16..b1cc086 100644
--- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultProducer.java
+++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultProducer.java
@@ -59,6 +59,9 @@ public class KeyVaultProducer extends DefaultProducer {
             case deleteSecret:
                 deleteSecret(exchange);
                 break;
+            case purgeDeletedSecret:
+                purgeDeletedSecret(exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -98,6 +101,15 @@ public class KeyVaultProducer extends DefaultProducer {
         message.setBody(p.getFinalResult());
     }
 
+    private void purgeDeletedSecret(Exchange exchange) throws InvalidPayloadException {
+        final String secretName = exchange.getMessage().getHeader(KeyVaultConstants.SECRET_NAME, String.class);
+        if (ObjectHelper.isEmpty(secretName)) {
+            throw new IllegalArgumentException("Secret Name must be specified for createSecret Operation");
+        }
+        getEndpoint().getSecretClient()
+                .purgeDeletedSecret(secretName);
+    }
+
     @Override
     public KeyVaultEndpoint getEndpoint() {
         return (KeyVaultEndpoint) super.getEndpoint();
diff --git a/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java b/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
index 8477352a..75236eb 100644
--- a/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
+++ b/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
@@ -58,6 +58,9 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
     @EndpointInject("mock:deleteSecret")
     private MockEndpoint deleteResult;
 
+    @EndpointInject("mock:purgeDeletedSecret")
+    private MockEndpoint purgeDeletedSecretResult;
+
     @Test
     public void sendInOnly() throws Exception {
         createResult.expectedMessageCount(1);
@@ -84,6 +87,12 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
             }
         });
 
+        template.send("direct:purgeDeletedSecret", ExchangePattern.InOnly, new Processor() {
+            public void process(Exchange exchange) {
+                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test1");
+            }
+        });
+
         assertMockEndpointsSatisfied();
     }
 
@@ -104,6 +113,10 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
                 from("direct:deleteSecret")
                         .to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})&operation=deleteSecret")
                         .to("mock:deleteSecret");
+
+                from("direct:purgeDeletedSecret")
+                        .to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})&operation=purgeDeletedSecret")
+                        .to("mock:purgeDeletedSecret");
             }
         };
     }

[camel] 02/02: CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch purge-deleted-secret-val
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5c084d7fef7bb63597b669a32eaa344f6a33e9d8
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 30 17:07:40 2022 +0200

    CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret
---
 .../component/azure/key/vault/azure-key-vault.json    |  2 +-
 .../operations/KeyVaultOperationsTest.java            | 19 +++----------------
 2 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/components/camel-azure/camel-azure-key-vault/src/generated/resources/org/apache/camel/component/azure/key/vault/azure-key-vault.json b/components/camel-azure/camel-azure-key-vault/src/generated/resources/org/apache/camel/component/azure/key/vault/azure-key-vault.json
index a3c7d4b..004117b 100644
--- a/components/camel-azure/camel-azure-key-vault/src/generated/resources/org/apache/camel/component/azure/key/vault/azure-key-vault.json
+++ b/components/camel-azure/camel-azure-key-vault/src/generated/resources/org/apache/camel/component/azure/key/vault/azure-key-vault.json
@@ -37,7 +37,7 @@
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.key.vault.KeyVaultOperation", "enum": [ "createSecret", "getSecret", "deleteSecret" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.key.vault.KeyVaultConfiguration", "configurationField": "configuration", "description": "Operation [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.key.vault.KeyVaultOperation", "enum": [ "createSecret", "getSecret", "deleteSecret", "purgeDeletedSecret" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.key.vault.KeyVaultConfiguration", "configurationField": "configuration", "de [...]
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.key.vault.KeyVaultConfiguration", "configurationField": "configuration", "description": "Client Id to be used" },
     "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.key.vault.KeyVaultConfiguration", "configurationField": "configuration", "description": "Client Secret to be used" },
     "tenantId": { "kind": "parameter", "displayName": "Tenant Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.key.vault.KeyVaultConfiguration", "configurationField": "configuration", "description": "Tenant Id to be used" }
diff --git a/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java b/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
index 75236eb..b507c55 100644
--- a/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
+++ b/components/camel-azure/camel-azure-key-vault/src/test/java/org/apache/camel/component/azure/key/vault/integration/operations/KeyVaultOperationsTest.java
@@ -58,9 +58,6 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
     @EndpointInject("mock:deleteSecret")
     private MockEndpoint deleteResult;
 
-    @EndpointInject("mock:purgeDeletedSecret")
-    private MockEndpoint purgeDeletedSecretResult;
-
     @Test
     public void sendInOnly() throws Exception {
         createResult.expectedMessageCount(1);
@@ -70,26 +67,20 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
 
         template.send("direct:createSecret", ExchangePattern.InOnly, new Processor() {
             public void process(Exchange exchange) {
-                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test1");
+                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test2");
                 exchange.getIn().setBody("TestValue");
             }
         });
 
         template.send("direct:getSecret", ExchangePattern.InOnly, new Processor() {
             public void process(Exchange exchange) {
-                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test1");
+                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test2");
             }
         });
 
         template.send("direct:deleteSecret", ExchangePattern.InOnly, new Processor() {
             public void process(Exchange exchange) {
-                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test1");
-            }
-        });
-
-        template.send("direct:purgeDeletedSecret", ExchangePattern.InOnly, new Processor() {
-            public void process(Exchange exchange) {
-                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test1");
+                exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test2");
             }
         });
 
@@ -113,10 +104,6 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
                 from("direct:deleteSecret")
                         .to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})&operation=deleteSecret")
                         .to("mock:deleteSecret");
-
-                from("direct:purgeDeletedSecret")
-                        .to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})&operation=purgeDeletedSecret")
-                        .to("mock:purgeDeletedSecret");
             }
         };
     }