You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/07/21 09:54:35 UTC

[camel] branch main updated: Revert "[CAMEL-19613] AS2 component (#10735)"

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

orpiske 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 ceb9ba71609 Revert "[CAMEL-19613] AS2 component (#10735)"
ceb9ba71609 is described below

commit ceb9ba7160963e461812a7d1bc8de1d5ccc8feef
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Jul 21 10:59:11 2023 +0200

    Revert "[CAMEL-19613] AS2 component (#10735)"
    
    This reverts commit cb997651b579b60ff9a5e7eca36a70efa007c38c.
---
 components/camel-as2/camel-as2-component/pom.xml   |  9 -----
 .../camel/component/as2/AS2ServerManagerIT.java    | 29 ++++++++++-----
 .../camel/component/as2/AbstractAS2ITSupport.java  | 43 +++++++---------------
 .../camel/component/as2/MendelsonCertLoader.java   | 23 +++++++++++-
 .../as2/MendelsonSslEndpointManualTest.java        |  6 ---
 5 files changed, 55 insertions(+), 55 deletions(-)

diff --git a/components/camel-as2/camel-as2-component/pom.xml b/components/camel-as2/camel-as2-component/pom.xml
index ab1e267cc08..9dd800721dd 100644
--- a/components/camel-as2/camel-as2-component/pom.xml
+++ b/components/camel-as2/camel-as2-component/pom.xml
@@ -70,15 +70,6 @@
             <version>${commons-io-version}</version>
             <scope>test</scope>
         </dependency>
-
-        <!-- test infra -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-infra-core</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
index 19895a60d96..22485cd5c24 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
@@ -143,6 +143,11 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
                                               + "UNT+23+00000000000117'\n"
                                               + "UNZ+1+00000000000778'";
 
+    private static AS2SignedDataGenerator gen;
+
+    private static KeyPair issueKP;
+    private static X509Certificate issueCert;
+
     private static KeyPair signingKP;
     private static X509Certificate signingCert;
     private static List<X509Certificate> certList;
@@ -150,6 +155,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
     private static KeyPair decryptingKP;
 
     private static SSLContext clientSslContext;
+    private static SSLContext serverSslContext;
 
     @BeforeAll
     public static void setup() throws Exception {
@@ -400,6 +406,8 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         kpg.initialize(1024, new SecureRandom());
         String hackerIssueDN = "O=Hackers Unlimited Ltd., C=US";
         var hackerIssueKP = kpg.generateKeyPair();
+        var hackerissueCert = Utils.makeCertificate(
+                hackerIssueKP, hackerIssueDN, hackerIssueKP, hackerIssueDN);
         String hackerSigningDN = "CN=John Doe, E=j.doe@sharklasers.com, O=Self Signed, C=US";
         var hackerSigningKP = kpg.generateKeyPair();
         var hackerSigningCert = Utils.makeCertificate(
@@ -627,8 +635,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
                 new IssuerAndSerialNumber(new X500Name(signingCert.getIssuerDN().getName()), signingCert.getSerialNumber())));
         attributes.add(new SMIMECapabilitiesAttribute(capabilities));
 
-        AS2SignedDataGenerator gen = SigningUtils.createSigningGenerator(AS2SignatureAlgorithm.SHA256WITHRSA,
-                certList.toArray(new X509Certificate[0]),
+        gen = SigningUtils.createSigningGenerator(AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new X509Certificate[0]),
                 signingKP.getPrivate());
         gen.addCertificates(certs);
 
@@ -643,8 +650,8 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         kpg.initialize(1024, new SecureRandom());
 
         String issueDN = "O=Punkhorn Software, C=US";
-        KeyPair issueKP = kpg.generateKeyPair();
-        X509Certificate issueCert = Utils.makeCertificate(
+        issueKP = kpg.generateKeyPair();
+        issueCert = Utils.makeCertificate(
                 issueKP, issueDN, issueKP, issueDN);
 
         //
@@ -680,7 +687,8 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         sslContextParameters.setKeyManagers(kmp);
         sslContextParameters.setTrustManagers(clientSSLTrustManagers);
 
-        return sslContextParameters.createSSLContext(context);
+        SSLContext sslContext = sslContextParameters.createSSLContext(context);
+        return sslContext;
     }
 
     public SSLContext setupServerContext(CamelContext context) throws Exception {
@@ -702,17 +710,20 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         sslContextParameters.setTrustManagers(tmp);
         sslContextParameters.setServerParameters(scsp);
 
-        return sslContextParameters.createSSLContext(context);
+        SSLContext sslContext = sslContextParameters.createSSLContext(context);
+        return sslContext;
     }
 
     @Override
-    public void configureContext(CamelContext context) throws Exception {
-        clientSslContext = setupClientContext(context);
-        SSLContext serverSslContext = setupClientContext(context);
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        this.clientSslContext = setupClientContext(context);
+        this.serverSslContext = setupClientContext(context);
         AS2Component as2Component = (AS2Component) context.getComponent("as2");
         AS2Configuration configuration = as2Component.getConfiguration();
         configuration.setSslContext(serverSslContext);
         configuration.setDecryptingPrivateKey(decryptingKP.getPrivate());
+        return context;
     }
 
     @Override
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AbstractAS2ITSupport.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AbstractAS2ITSupport.java
index 2e0dd9012ee..1b09968232d 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AbstractAS2ITSupport.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AbstractAS2ITSupport.java
@@ -23,31 +23,24 @@ import java.util.Properties;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
-import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.support.PropertyBindingSupport;
-import org.apache.camel.test.infra.core.CamelContextExtension;
-import org.apache.camel.test.infra.core.TransientCamelContextExtension;
-import org.apache.camel.test.infra.core.annotations.RouteFixture;
-import org.apache.camel.test.infra.core.api.CamelTestSupportHelper;
-import org.apache.camel.test.infra.core.api.ConfigurableContext;
-import org.apache.camel.test.infra.core.api.ConfigurableRoute;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.TestInstance.Lifecycle;
-import org.junit.jupiter.api.extension.RegisterExtension;
 
 /**
  * Abstract base class for AS2 Integration tests generated by Camel API component maven plugin.
  */
 @TestInstance(Lifecycle.PER_CLASS)
-public abstract class AbstractAS2ITSupport implements CamelTestSupportHelper, ConfigurableContext, ConfigurableRoute {
+public class AbstractAS2ITSupport extends CamelTestSupport {
 
     private static final String TEST_OPTIONS_PROPERTIES = "/test-options.properties";
 
-    @RegisterExtension
-    public static final CamelContextExtension camelContextExtension = new TransientCamelContextExtension();
-
     @Override
-    public void configureContext(CamelContext context) throws Exception {
+    protected CamelContext createCamelContext() throws Exception {
+
+        final CamelContext context = super.createCamelContext();
+
         // read AS2 component configuration from TEST_OPTIONS_PROPERTIES
         final Properties properties = new Properties();
         try {
@@ -70,28 +63,18 @@ public abstract class AbstractAS2ITSupport implements CamelTestSupportHelper, Co
         final AS2Component component = new AS2Component(context);
         component.setConfiguration(configuration);
         context.addComponent("as2", component);
-    }
-
-    @Override
-    public CamelContextExtension getCamelContextExtension() {
-        return camelContextExtension;
-    }
 
-    @Override
-    @RouteFixture
-    public void createRouteBuilder(CamelContext context) throws Exception {
-        final RouteBuilder routeBuilder = createRouteBuilder();
-
-        if (routeBuilder != null) {
-            context.addRoutes(routeBuilder);
-        }
+        return context;
     }
 
-    protected abstract RouteBuilder createRouteBuilder() throws Exception;
-
     @SuppressWarnings("unchecked")
     protected <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers)
             throws CamelExecutionException {
-        return (T) getCamelContextExtension().getProducerTemplate().requestBodyAndHeaders(endpointUri, body, headers);
+        return (T) template().requestBodyAndHeaders(endpointUri, body, headers);
+    }
+
+    @SuppressWarnings("unchecked")
+    protected <T> T requestBody(String endpoint, Object body) throws CamelExecutionException {
+        return (T) template().requestBody(endpoint, body);
     }
 }
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
index cc94894bf60..c88b6997e9e 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.as2;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.security.KeyManagementException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -29,10 +30,12 @@ import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
 import java.security.spec.InvalidKeySpecException;
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 
 import javax.net.ssl.SSLContext;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.http.conn.ssl.TrustAllStrategy;
 import org.apache.http.ssl.SSLContexts;
 import org.slf4j.Logger;
@@ -142,6 +145,11 @@ public class MendelsonCertLoader {
         return privateKey;
     }
 
+    private List<Certificate> getCertificatesFromStream(InputStream inputStream) throws CertificateException {
+        CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
+        return (List<Certificate>) certificateFactory.generateCertificates(inputStream);
+    }
+
     private Certificate getCertificateFromStream(InputStream inputStream) throws IOException, CertificateException {
         CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
         return certificateFactory.generateCertificate(inputStream);
@@ -165,10 +173,23 @@ public class MendelsonCertLoader {
             return (PrivateKey) ks.getKey(
                     ks.aliases().nextElement(),
                     keyStorePassword.toCharArray());
-        } catch (KeyStoreException | UnrecoverableKeyException e) {
+        } catch (KeyStoreException e) {
+            LOG.error("Error while retrieving private key" + e);
+        } catch (UnrecoverableKeyException e) {
             LOG.error("Error while retrieving private key" + e);
         }
         throw new IllegalStateException("Failed to construct a PrivateKey from provided InputStream");
     }
 
+    private byte[] getBytesFromPem(InputStream inputStream) throws IOException {
+        String privateKeyPEM
+                = IOUtils.toString(inputStream, StandardCharsets.UTF_8).replaceAll("-{5}.+-{5}", "").replaceAll("\\s", "");
+        return Base64.getDecoder().decode(privateKeyPEM);
+    }
+
+    private byte[] getBytesFromPKCS12(InputStream inputStream) throws IOException {
+        String privateKeyPKCS12 = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
+        return privateKeyPKCS12.getBytes(StandardCharsets.UTF_8);
+    }
+
 }
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonSslEndpointManualTest.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonSslEndpointManualTest.java
index b4e0f25d4fa..5382b74c9cb 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonSslEndpointManualTest.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonSslEndpointManualTest.java
@@ -24,7 +24,6 @@ import javax.net.ssl.HostnameVerifier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
-import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.as2.api.AS2EncryptionAlgorithm;
 import org.apache.camel.component.as2.api.AS2MessageStructure;
 import org.apache.camel.component.as2.api.AS2SignatureAlgorithm;
@@ -126,9 +125,4 @@ public class MendelsonSslEndpointManualTest extends AbstractAS2ITSupport {
                   "you can check your message in http://testas2.mendelson-e-c.com:8080/webas2/ " +
                   "Login guest, password guest");
     }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return null;
-    }
 }