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 <angusyo...@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....@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; - } }