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:16 UTC
[camel] 01/02: CAMEL-17687 - Create a Camel Azure Key Vault component - Purge Deleted Secret
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");
}
};
}