You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/10/07 13:57:54 UTC
[camel-quarkus] branch master updated: Crypto extension requires
reflective access to DigitalSignatureConstants
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new 62a4201 Crypto extension requires reflective access to DigitalSignatureConstants
62a4201 is described below
commit 62a4201a76d2bd27ff107cfdfa4920a02a8d8cc8
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Oct 7 13:23:33 2020 +0100
Crypto extension requires reflective access to DigitalSignatureConstants
---
.../component/crypto/deployment/CryptoProcessor.java | 9 +++++++++
.../quarkus/component/crypto/it/CryptoResource.java | 19 +++++++++++++++++--
.../camel/quarkus/component/crypto/it/CryptoTest.java | 4 +++-
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/extensions/crypto/deployment/src/main/java/org/apache/camel/quarkus/component/crypto/deployment/CryptoProcessor.java b/extensions/crypto/deployment/src/main/java/org/apache/camel/quarkus/component/crypto/deployment/CryptoProcessor.java
index 60a3645..25d08f3 100644
--- a/extensions/crypto/deployment/src/main/java/org/apache/camel/quarkus/component/crypto/deployment/CryptoProcessor.java
+++ b/extensions/crypto/deployment/src/main/java/org/apache/camel/quarkus/component/crypto/deployment/CryptoProcessor.java
@@ -19,6 +19,8 @@ package org.apache.camel.quarkus.component.crypto.deployment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.component.crypto.DigitalSignatureConstants;
class CryptoProcessor {
@@ -33,4 +35,11 @@ class CryptoProcessor {
ExtensionSslNativeSupportBuildItem activeNativeSSLSupport() {
return new ExtensionSslNativeSupportBuildItem(FEATURE);
}
+
+ @BuildStep
+ ReflectiveClassBuildItem registerForReflection() {
+ // TODO: Remove this when upgrading to Camel >= 3.6.0
+ // https://github.com/apache/camel-quarkus/issues/1881
+ return new ReflectiveClassBuildItem(false, true, DigitalSignatureConstants.class);
+ }
}
diff --git a/integration-tests/crypto/src/main/java/org/apache/camel/quarkus/component/crypto/it/CryptoResource.java b/integration-tests/crypto/src/main/java/org/apache/camel/quarkus/component/crypto/it/CryptoResource.java
index ca7c397..0195228 100644
--- a/integration-tests/crypto/src/main/java/org/apache/camel/quarkus/component/crypto/it/CryptoResource.java
+++ b/integration-tests/crypto/src/main/java/org/apache/camel/quarkus/component/crypto/it/CryptoResource.java
@@ -30,6 +30,7 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -64,8 +65,22 @@ public class CryptoResource {
@Path("/signature/verify")
@POST
@Consumes(MediaType.TEXT_PLAIN)
- public void verify(String signature) {
- producerTemplate.sendBodyAndHeader("direct:verify", MESSAGE, DigitalSignatureConstants.SIGNATURE, signature);
+ public Response verify(String signature) {
+ Exchange exchange = producerTemplate.send("direct:verify", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Message message = exchange.getMessage();
+ message.setHeader(DigitalSignatureConstants.SIGNATURE, signature);
+ message.setBody(MESSAGE);
+ }
+ });
+
+ if (exchange.isFailed()) {
+ // Expected in the signature verification failure scenario
+ return Response.serverError().build();
+ }
+
+ return Response.ok(exchange.getMessage().getHeaders().size() == 0).build();
}
@Path("/encrypt")
diff --git a/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoTest.java b/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoTest.java
index 45c471b..bfac55c 100644
--- a/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoTest.java
+++ b/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoTest.java
@@ -24,6 +24,7 @@ import org.apache.commons.codec.binary.Base64;
import org.junit.jupiter.api.Test;
import static org.apache.camel.quarkus.component.crypto.it.CryptoResource.MESSAGE;
+import static org.hamcrest.Matchers.is;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -59,7 +60,8 @@ class CryptoTest {
.body(signature)
.post("/crypto/signature/verify")
.then()
- .statusCode(204);
+ .statusCode(200)
+ .body(is("true"));
}
@Test