This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch 3.40.x in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 4f885e76f3561c458a717792bfe752150d5ec895 Author: Gaƫlle Fournier <[email protected]> AuthorDate: Fri Sep 25 09:54:59 2026 +0200 Fix SFTP tests running using hardcoded localhost to be able to use remote docker * Remove hardcoded localhost in sftp tests * remove throwaway container in sftp tests support code Fixes #9235. --- .../test/support/sftp/SftpCertificates.java | 14 ++++-- .../support/sftp/SftpHostCertTestResource.java | 36 +++++++++------ .../test/support/sftp/SftpTestResource.java | 1 + .../quarkus/component/sftp/it/SftpResource.java | 45 ++++++++++-------- .../component/mina/sftp/it/MinaSftpResource.java | 54 +++++++++++----------- 5 files changed, 86 insertions(+), 64 deletions(-) diff --git a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpCertificates.java b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpCertificates.java index 8bd83ea44b..712ff43969 100644 --- a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpCertificates.java +++ b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpCertificates.java @@ -28,6 +28,7 @@ import java.security.spec.ECGenParameterSpec; import java.time.Duration; import java.time.Instant; import java.util.Collections; +import java.util.List; import org.apache.camel.quarkus.test.FipsModeUtil; import org.apache.sshd.certificate.OpenSshCertificateBuilder; @@ -100,12 +101,19 @@ public class SftpCertificates { * Generate all required SSH certificates using Apache SSHD. */ public static SftpCertificates generate(Path sshDir) throws Exception { + return generate(sshDir, Collections.singletonList("localhost")); + } + + /** + * Generate all required SSH certificates with custom host certificate principals. + */ + public static SftpCertificates generate(Path sshDir, List<String> hostPrincipals) throws Exception { SftpCertificates certs = new SftpCertificates(sshDir); - certs.generateAll(); + certs.generateAll(hostPrincipals); return certs; } - private void generateAll() throws Exception { + private void generateAll(List<String> hostPrincipals) throws Exception { // Register BouncyCastle provider for Ed25519 support java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); @@ -161,7 +169,7 @@ public class SftpCertificates { .serial(random.nextLong() & Long.MAX_VALUE) .publicKey(hostKeyPair.getPublic()) .id("sftp-server") - .principals(Collections.singletonList("localhost")) + .principals(hostPrincipals) .validAfter(Instant.now().minus(Duration.ofMinutes(1))) .validBefore(Instant.now().plus(Duration.ofDays(365))) .sign(hostCaKeyPair); diff --git a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpHostCertTestResource.java b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpHostCertTestResource.java index 0c20c43805..902ceca574 100644 --- a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpHostCertTestResource.java +++ b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpHostCertTestResource.java @@ -19,7 +19,9 @@ package org.apache.camel.quarkus.test.support.sftp; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -52,39 +54,43 @@ public class SftpHostCertTestResource implements QuarkusTestResourceLifecycleMan Path sshDir = tempDir.resolve("ssh"); Files.createDirectories(sshDir); - SftpCertificates certificates = SftpCertificates.generate(sshDir); - LOGGER.info("Generated SSH certificates with host cert in: " + sshDir); - - // Create custom sshd_config that uses host certificate and trusts user CA - Path sshdConfigPath = createSshdConfig(sshDir); - - // Start OpenSSH container with host certificate configuration container = new GenericContainer<>(opensshImage) .withExposedPorts(SFTP_PORT) .withEnv("PASSWORD_ACCESS", "true") .withEnv("USER_NAME", USERNAME) .withEnv("USER_PASSWORD", PASSWORD) .withEnv("SUDO_ACCESS", "false") - // Copy host certificate and key - .withCopyFileToContainer( - MountableFile.forHostPath(certificates.getHostPrivateKeyPath()), - "/config/ssh_host_ed25519_key") + .waitingFor(Wait.forLogMessage(".*done.*", 1)); + + // Determine Docker host before generating certificates so the host cert + // principal matches the actual connection target (supports remote Docker) + String dockerHost = container.getHost(); + List<String> hostPrincipals = "localhost".equals(dockerHost) + ? List.of("localhost") + : Arrays.asList(dockerHost, "localhost"); + + SftpCertificates certificates = SftpCertificates.generate(sshDir, hostPrincipals); + LOGGER.info("Generated SSH certificates with host cert in: " + sshDir); + + Path sshdConfigPath = createSshdConfig(sshDir); + + container.withCopyFileToContainer( + MountableFile.forHostPath(certificates.getHostPrivateKeyPath()), + "/config/ssh_host_ed25519_key") .withCopyFileToContainer( MountableFile.forHostPath(certificates.getHostCertificatePath()), "/config/ssh_host_ed25519_key-cert.pub") - // Copy user CA public key for user cert verification .withCopyFileToContainer( MountableFile.forHostPath(certificates.getUserCaPubKeyPath()), "/config/user_ca.pub") - // Copy custom sshd_config .withCopyFileToContainer( MountableFile.forHostPath(sshdConfigPath), - "/etc/ssh/sshd_config") - .waitingFor(Wait.forLogMessage(".*done.*", 1)); + "/etc/ssh/sshd_config"); container.start(); Map<String, String> result = new HashMap<>(); + result.put("camel.sftp.hostcert.test-host", container.getHost()); result.put("camel.sftp.hostcert.test-port", container.getMappedPort(SFTP_PORT).toString()); // Set system property for JVM mode AND return in map for native mode command-line args diff --git a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpTestResource.java b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpTestResource.java index 6c2f39b26b..7d3d0b9d2c 100644 --- a/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpTestResource.java +++ b/integration-tests-support/sftp/src/main/java/org/apache/camel/quarkus/test/support/sftp/SftpTestResource.java @@ -95,6 +95,7 @@ public class SftpTestResource implements QuarkusTestResourceLifecycleManager { container.execInContainer("chmod", "600", "/config/.ssh/authorized_keys"); Map<String, String> result = new HashMap<>(); + result.put("camel.sftp.test-host", container.getHost()); result.put("camel.sftp.test-port", container.getMappedPort(SFTP_PORT).toString()); // Set system properties for JVM mode AND return in map for native mode command-line args diff --git a/integration-tests/ftp/src/main/java/org/apache/camel/quarkus/component/sftp/it/SftpResource.java b/integration-tests/ftp/src/main/java/org/apache/camel/quarkus/component/sftp/it/SftpResource.java index 5c28cfc99e..c2cbc8c2c4 100644 --- a/integration-tests/ftp/src/main/java/org/apache/camel/quarkus/component/sftp/it/SftpResource.java +++ b/integration-tests/ftp/src/main/java/org/apache/camel/quarkus/component/sftp/it/SftpResource.java @@ -63,7 +63,7 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFile(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -75,7 +75,7 @@ public class SftpResource { public Response createFile(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false", + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -87,7 +87,7 @@ public class SftpResource { @DELETE public void deleteFile(@PathParam("fileName") String fileName) { consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&delete=true&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&delete=true&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -97,7 +97,7 @@ public class SftpResource { @PUT public void moveToDoneFile(@PathParam("fileName") String fileName) { consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&move=${headers.CamelFileName}.done&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&useUserKnownHostsFile=false&move=${headers.CamelFileName}.done&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -109,7 +109,7 @@ public class SftpResource { public Response createFileWithCertificate(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false", + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -122,7 +122,7 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificate(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -134,7 +134,7 @@ public class SftpResource { public Response createFileWithCertificateFile(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/classes/certs/test-key-rsa.key&certFile=target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false", + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/classes/certs/test-key-rsa.key&certFile=target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -147,7 +147,7 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificateFile(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/classes/certs/test-key-rsa.key&certFile=target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/classes/certs/test-key-rsa.key&certFile=target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -159,7 +159,7 @@ public class SftpResource { public Response createFileWithCertificateBytes(@PathParam("fileName") String fileName, String fileContent) throws Exception { - String uri = "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp"; + String uri = "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp"; SftpEndpoint endpoint = context.getEndpoint(uri, SftpEndpoint.class); SftpConfiguration config = endpoint.getConfiguration(); @@ -176,7 +176,7 @@ public class SftpResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificateBytes(@PathParam("fileName") String fileName) throws Exception { - String uri = "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName=" + String uri = "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName=" + fileName; SftpEndpoint endpoint = context.getEndpoint(uri, SftpEndpoint.class); SftpConfiguration config = endpoint.getConfiguration(); @@ -193,7 +193,7 @@ public class SftpResource { public Response createFileWithCertificateAndCaAlgorithms(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&caSignatureAlgorithms=rsa-sha2-512,rsa-sha2-256,ssh-rsa", + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&caSignatureAlgorithms=rsa-sha2-512,rsa-sha2-256,ssh-rsa", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -206,7 +206,7 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificateAndCaAlgorithms(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&caSignatureAlgorithms=rsa-sha2-512,rsa-sha2-256,ssh-rsa&localWorkDirectory=target&fileName=" + "sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&useUserKnownHostsFile=false&caSignatureAlgorithms=rsa-sha2-512,rsa-sha2-256,ssh-rsa&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -218,8 +218,9 @@ public class SftpResource { public Response createFileWithHostCertVerification(@PathParam("fileName") String fileName, String fileContent) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa"; SftpEndpoint endpoint = context.getEndpoint(uri, SftpEndpoint.class); @@ -237,8 +238,9 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithHostCertVerification(@PathParam("fileName") String fileName) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa&localWorkDirectory=target&fileName=" + fileName; @@ -253,8 +255,9 @@ public class SftpResource { @DELETE public Response deleteFileWithHostCert(@PathParam("fileName") String fileName) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa&delete=true&fileName=" + fileName; @@ -272,8 +275,9 @@ public class SftpResource { public Response createFileWithHostCertAndAlgorithms(@PathParam("fileName") String fileName, String fileContent) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256"; SftpEndpoint endpoint = context.getEndpoint(uri, SftpEndpoint.class); @@ -291,8 +295,9 @@ public class SftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithHostCertAndAlgorithms(@PathParam("fileName") String fileName) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256&localWorkDirectory=target&fileName=" + fileName; @@ -307,8 +312,9 @@ public class SftpResource { @DELETE public Response deleteFileWithHostCertAndAlgorithms(@PathParam("fileName") String fileName) throws Exception { byte[] knownHostsContent = getHostCaKnownHostsContent(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String uri = "sftp://admin@localhost:" + port + String uri = "sftp://admin@" + host + ":" + port + "/sftp?password=admin&strictHostKeyChecking=no&useUserKnownHostsFile=false&caSignatureAlgorithms=ssh-ed25519,rsa-sha2-512,rsa-sha2-256&delete=true&fileName=" + fileName; @@ -328,9 +334,10 @@ public class SftpResource { */ private byte[] getHostCaKnownHostsContent() throws Exception { String hostCaPubKey = org.apache.camel.quarkus.test.support.sftp.SftpHostCertTestResource.getHostCaPublicKey(); + String host = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-host}}"); String port = context.resolvePropertyPlaceholders("{{camel.sftp.hostcert.test-port}}"); - String knownHostsContent = String.format("@cert-authority [localhost]:%s %s%n", port, hostCaPubKey); + String knownHostsContent = String.format("@cert-authority [%s]:%s %s%n", host, port, hostCaPubKey); getLogger(SftpResource.class.getName()).fine( "Created known_hosts content:\n" + knownHostsContent); diff --git a/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java b/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java index b2433e1043..a76bd73075 100644 --- a/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java +++ b/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java @@ -76,7 +76,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFile(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -88,7 +88,7 @@ public class MinaSftpResource { public Response createFile(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin", fileContent, + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin", fileContent, Exchange.FILE_NAME, fileName); return Response .created(new URI("https://camel.apache.org/")) @@ -101,7 +101,7 @@ public class MinaSftpResource { public Response appendToFile(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&fileExist=Append", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&fileExist=Append", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -114,7 +114,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String consumeFileWithNoop(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + fileName + "&noop=true", TIMEOUT_MS, String.class); @@ -125,7 +125,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String consumeFileWithMove(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + fileName + "&move=${file:name}.done", TIMEOUT_MS, String.class); @@ -136,7 +136,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String consumeFileWithDelete(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&localWorkDirectory=target&fileName=" + fileName + "&delete=true", TIMEOUT_MS, String.class); @@ -146,7 +146,7 @@ public class MinaSftpResource { @DELETE public void deleteFile(@PathParam("fileName") String fileName) { consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&delete=true&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&delete=true&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -156,7 +156,7 @@ public class MinaSftpResource { @PUT public void moveToDoneFile(@PathParam("fileName") String fileName) { consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&move=${headers.CamelFileName}.done&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&move=${headers.CamelFileName}.done&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -168,7 +168,7 @@ public class MinaSftpResource { public Response createFileWithPrivateKey(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp.key", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp.key", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -181,7 +181,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithPrivateKey(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp.key&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp.key&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -193,7 +193,7 @@ public class MinaSftpResource { public Response createFileWithEncryptedPrivateKey(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp-encrypted.key&privateKeyPassphrase=password", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp-encrypted.key&privateKeyPassphrase=password", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -206,7 +206,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithEncryptedPrivateKey(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp-encrypted.key&privateKeyPassphrase=password&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyFile=target/certs/ftp-encrypted.key&privateKeyPassphrase=password&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -218,7 +218,7 @@ public class MinaSftpResource { public Response createFileWithCertificate(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -231,7 +231,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificate(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -243,7 +243,7 @@ public class MinaSftpResource { public Response createFileWithCertificateUri(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -256,7 +256,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificateUri(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:target/classes/certs/test-key-rsa.key&certUri=file:target/classes/certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -268,7 +268,7 @@ public class MinaSftpResource { public Response createFileWithCertificateBytes(@PathParam("fileName") String fileName, String fileContent) throws Exception { - String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp"; + String uri = "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp"; MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class); MinaSftpConfiguration config = endpoint.getConfiguration(); @@ -285,7 +285,7 @@ public class MinaSftpResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getFileWithCertificateBytes(@PathParam("fileName") String fileName) throws Exception { - String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName=" + String uri = "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName=" + fileName; MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class); MinaSftpConfiguration config = endpoint.getConfiguration(); @@ -302,7 +302,7 @@ public class MinaSftpResource { public Response createFileWithCompression(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&compression=6", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&compression=6", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -315,7 +315,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCompression(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&compression=6&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&compression=6&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -326,7 +326,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithStreamDownload(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&streamDownload=true&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&streamDownload=true&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -338,7 +338,7 @@ public class MinaSftpResource { public Response createFileWithCustomCipher(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&ciphers=aes256-ctr,aes128-ctr", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&ciphers=aes256-ctr,aes128-ctr", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -351,7 +351,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithCustomCipher(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&ciphers=aes256-ctr,aes128-ctr&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&ciphers=aes256-ctr,aes128-ctr&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -363,7 +363,7 @@ public class MinaSftpResource { public Response createFileWithGcmCipher(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected],[email protected]", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected],[email protected]", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -376,7 +376,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithGcmCipher(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected],[email protected]&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected],[email protected]&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class); @@ -388,7 +388,7 @@ public class MinaSftpResource { public Response createFileWithChaCha20Cipher(@PathParam("fileName") String fileName, String fileContent) throws Exception { producerTemplate.sendBodyAndHeader( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected]", + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected]", fileContent, Exchange.FILE_NAME, fileName); return Response @@ -401,7 +401,7 @@ public class MinaSftpResource { @Produces(MediaType.TEXT_PLAIN) public String getFileWithChaCha20Cipher(@PathParam("fileName") String fileName) { return consumerTemplate.receiveBody( - "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected]&localWorkDirectory=target&fileName=" + "mina-sftp://admin@{{camel.sftp.test-host}}:{{camel.sftp.test-port}}/sftp?password=admin&preferredAuthentications=password&[email protected]&localWorkDirectory=target&fileName=" + fileName, TIMEOUT_MS, String.class);
