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 12:57:31 UTC
[camel] 11/13: CAMEL-17687 - Create a Camel Azure Key Vault component - Get Secret Operation
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 db222709795167e54f9ff5033ff9907b3d2aadbc
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 30 13:19:35 2022 +0200
CAMEL-17687 - Create a Camel Azure Key Vault component - Get Secret Operation
---
.../azure/key/vault/KeyVaultProducer.java | 14 +++++++++
.../operations/KeyVaultOperationsTest.java | 35 +++++++++++++++++-----
2 files changed, 41 insertions(+), 8 deletions(-)
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 00c8bd8..dc1fe4f 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
@@ -51,6 +51,9 @@ public class KeyVaultProducer extends DefaultProducer {
case createSecret:
createSecret(exchange);
break;
+ case getSecret:
+ getSecret(exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -67,6 +70,17 @@ public class KeyVaultProducer extends DefaultProducer {
message.setBody(p);
}
+ private void getSecret(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");
+ }
+ KeyVaultSecret p = getEndpoint().getSecretClient()
+ .getSecret(secretName);
+ Message message = getMessageForResponse(exchange);
+ message.setBody(p.getValue());
+ }
+
@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 73de7a5..e67b0e5 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
@@ -22,6 +22,7 @@ import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.azure.key.vault.KeyVaultConstants;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
@@ -39,19 +40,34 @@ import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class KeyVaultOperationsTest extends CamelTestSupport {
- @EndpointInject("direct:start")
+ @EndpointInject("direct:createSecret")
private ProducerTemplate template;
- @EndpointInject("mock:result")
- private MockEndpoint result;
+ @EndpointInject("direct:getSecret")
+ private ProducerTemplate getTemplate;
+
+ @EndpointInject("mock:createSecret")
+ private MockEndpoint createResult;
+
+ @EndpointInject("mock:getSecret")
+ private MockEndpoint getResult;
@Test
public void sendInOnly() throws Exception {
- result.expectedMessageCount(1);
+ createResult.expectedMessageCount(1);
+ getResult.expectedMessageCount(1);
+ getResult.expectedBodiesReceived("TestValue");
+
+ template.send("direct:createSecret", ExchangePattern.InOnly, new Processor() {
+ public void process(Exchange exchange) {
+ exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test");
+ exchange.getIn().setBody("TestValue");
+ }
+ });
- Exchange exchange = template.send("direct:start", ExchangePattern.InOnly, new Processor() {
+ template.send("direct:getSecret", ExchangePattern.InOnly, new Processor() {
public void process(Exchange exchange) {
- exchange.getIn().setBody("Test");
+ exchange.getMessage().setHeader(KeyVaultConstants.SECRET_NAME, "Test");
}
});
@@ -64,10 +80,13 @@ public class KeyVaultOperationsTest extends CamelTestSupport {
return new RouteBuilder() {
@Override
public void configure() {
- from("direct:start").startupOrder(1)
+ from("direct:createSecret")
.to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})")
- .to("mock:result");
+ .to("mock:createSecret");
+ from("direct:getSecret")
+ .to("azure-key-vault://{{vaultName}}?clientId=RAW({{clientId}})&clientSecret=RAW({{clientSecret}})&tenantId=RAW({{tenantId}})&operation=getSecret")
+ .to("mock:getSecret");
}
};
}