Author: dvaleri Date: Thu Dec 1 00:13:30 2011 New Revision: 1208903 URL: http://svn.apache.org/viewvc?rev=1208903&view=rev Log: [CAMEL-4720] Add support for Camel JSSE Configuration Util to FTPS component.
Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java (with props) camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java (with props) Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthTest.java camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthTest.java Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java (original) +++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java Thu Dec 1 00:13:30 2011 @@ -22,10 +22,13 @@ import java.security.KeyStore; import java.util.Map; import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; import javax.net.ssl.TrustManagerFactory; import org.apache.camel.util.IOHelper; import org.apache.camel.util.IntrospectionSupport; +import org.apache.camel.util.jsse.SSLContextParameters; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPFile; @@ -40,6 +43,7 @@ public class FtpsEndpoint extends FtpEnd protected Map<String, Object> ftpClientKeyStoreParameters; protected Map<String, Object> ftpClientTrustStoreParameters; + protected SSLContextParameters sslContextParameters; public FtpsEndpoint() { super(); @@ -58,54 +62,75 @@ public class FtpsEndpoint extends FtpEnd * Create the FTPS client. */ protected FTPClient createFtpClient() throws Exception { - FTPSClient client = new FTPSClient(getFtpsConfiguration().getSecurityProtocol(), - getFtpsConfiguration().isImplicit()); + FTPSClient client = null; - if (ftpClientKeyStoreParameters != null) { - String type = (ftpClientKeyStoreParameters.containsKey("type")) - ? (String) ftpClientKeyStoreParameters.get("type") : KeyStore.getDefaultType(); - String file = (String) ftpClientKeyStoreParameters.get("file"); - String password = (String) ftpClientKeyStoreParameters.get("password"); - String algorithm = (ftpClientKeyStoreParameters.containsKey("algorithm")) - ? (String) ftpClientKeyStoreParameters.get("algorithm") - : KeyManagerFactory.getDefaultAlgorithm(); - String keyPassword = (String) ftpClientKeyStoreParameters.get("keyPassword"); + if (sslContextParameters != null) { + SSLContext context = sslContextParameters.createSSLContext(); + + client = new FTPSClient(getFtpsConfiguration().isImplicit(), context); + + // The FTPSClient tries to manage the following SSLSocket related configuration options + // on its own based on internal configuration options. FTPSClient does not lend itself + // to subclassing for the purpose of overriding this behavior (private methods, fields, etc.). + // As such, we create a socket (preconfigured by SSLContextParameters) from the context + // we gave to FTPSClient and then setup FTPSClient to reuse the already configured configuration + // from the socket for all future sockets it creates. Not sexy and a little brittle, but it works. + SSLSocket socket = (SSLSocket)context.getSocketFactory().createSocket(); + client.setEnabledCipherSuites(socket.getEnabledCipherSuites()); + client.setEnabledProtocols(socket.getEnabledProtocols()); + client.setNeedClientAuth(socket.getNeedClientAuth()); + client.setWantClientAuth(socket.getWantClientAuth()); + client.setEnabledSessionCreation(socket.getEnableSessionCreation()); + } else { + client = new FTPSClient(getFtpsConfiguration().getSecurityProtocol(), + getFtpsConfiguration().isImplicit()); - KeyStore keyStore = KeyStore.getInstance(type); - FileInputStream keyStoreFileInputStream = new FileInputStream(new File(file)); - try { - keyStore.load(keyStoreFileInputStream, password.toCharArray()); - } finally { - IOHelper.close(keyStoreFileInputStream, "keyStore", log); + if (ftpClientKeyStoreParameters != null) { + String type = (ftpClientKeyStoreParameters.containsKey("type")) + ? (String) ftpClientKeyStoreParameters.get("type") : KeyStore.getDefaultType(); + String file = (String) ftpClientKeyStoreParameters.get("file"); + String password = (String) ftpClientKeyStoreParameters.get("password"); + String algorithm = (ftpClientKeyStoreParameters.containsKey("algorithm")) + ? (String) ftpClientKeyStoreParameters.get("algorithm") + : KeyManagerFactory.getDefaultAlgorithm(); + String keyPassword = (String) ftpClientKeyStoreParameters.get("keyPassword"); + + KeyStore keyStore = KeyStore.getInstance(type); + FileInputStream keyStoreFileInputStream = new FileInputStream(new File(file)); + try { + keyStore.load(keyStoreFileInputStream, password.toCharArray()); + } finally { + IOHelper.close(keyStoreFileInputStream, "keyStore", log); + } + + KeyManagerFactory keyMgrFactory = KeyManagerFactory.getInstance(algorithm); + keyMgrFactory.init(keyStore, keyPassword.toCharArray()); + client.setNeedClientAuth(true); + client.setKeyManager(keyMgrFactory.getKeyManagers()[0]); } - - KeyManagerFactory keyMgrFactory = KeyManagerFactory.getInstance(algorithm); - keyMgrFactory.init(keyStore, keyPassword.toCharArray()); - client.setNeedClientAuth(true); - client.setKeyManager(keyMgrFactory.getKeyManagers()[0]); - } - - if (ftpClientTrustStoreParameters != null) { - String type = (ftpClientTrustStoreParameters.containsKey("type")) - ? (String) ftpClientTrustStoreParameters.get("type") : KeyStore.getDefaultType(); - String file = (String) ftpClientTrustStoreParameters.get("file"); - String password = (String) ftpClientTrustStoreParameters.get("password"); - String algorithm = (ftpClientTrustStoreParameters.containsKey("algorithm")) - ? (String) ftpClientTrustStoreParameters.get("algorithm") - : TrustManagerFactory.getDefaultAlgorithm(); - - KeyStore trustStore = KeyStore.getInstance(type); - FileInputStream trustStoreFileInputStream = new FileInputStream(new File(file)); - try { - trustStore.load(trustStoreFileInputStream, password.toCharArray()); - } finally { - IOHelper.close(trustStoreFileInputStream, "trustStore", log); + + if (ftpClientTrustStoreParameters != null) { + String type = (ftpClientTrustStoreParameters.containsKey("type")) + ? (String) ftpClientTrustStoreParameters.get("type") : KeyStore.getDefaultType(); + String file = (String) ftpClientTrustStoreParameters.get("file"); + String password = (String) ftpClientTrustStoreParameters.get("password"); + String algorithm = (ftpClientTrustStoreParameters.containsKey("algorithm")) + ? (String) ftpClientTrustStoreParameters.get("algorithm") + : TrustManagerFactory.getDefaultAlgorithm(); + + KeyStore trustStore = KeyStore.getInstance(type); + FileInputStream trustStoreFileInputStream = new FileInputStream(new File(file)); + try { + trustStore.load(trustStoreFileInputStream, password.toCharArray()); + } finally { + IOHelper.close(trustStoreFileInputStream, "trustStore", log); + } + + TrustManagerFactory trustMgrFactory = TrustManagerFactory.getInstance(algorithm); + trustMgrFactory.init(trustStore); + + client.setTrustManager(trustMgrFactory.getTrustManagers()[0]); } - - TrustManagerFactory trustMgrFactory = TrustManagerFactory.getInstance(algorithm); - trustMgrFactory.init(trustStore); - - client.setTrustManager(trustMgrFactory.getTrustManagers()[0]); } return client; @@ -198,4 +223,20 @@ public class FtpsEndpoint extends FtpEnd this.ftpClientTrustStoreParameters = param; } + /** + * Gets the JSSE configuration that overrides any settings in {@link FtpsEndpoint#ftpClientKeyStoreParameters}, + * {@link #ftpClientTrustStoreParameters}, and {@link FtpsConfiguration#getSecurityProtocol()}. + */ + public SSLContextParameters getSslContextParameters() { + return sslContextParameters; + } + + /** + * Gets the JSSE configuration that overrides any settings in {@link FtpsEndpoint#ftpClientKeyStoreParameters}, + * {@link #ftpClientTrustStoreParameters}, and {@link FtpsConfiguration#getSecurityProtocol()}. + */ + public void setSslContextParameters(SSLContextParameters sslContextParameters) { + this.sslContextParameters = sslContextParameters; + } + } \ No newline at end of file Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,38 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyManagersParameters; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest extends FileToFtpsExplicitSSLWithClientAuthTest { + + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + KeyManagersParameters kmp = new KeyManagersParameters(); + kmp.setKeyPassword("password"); + kmp.setKeyStore(ksp); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("SSL"); + sslContextParameters.setKeyManagers(kmp); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=false&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsExplicitSSLWithClientAuthTest extends FtpsServerExplicitSSLWithClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=SSL&isImplicit=false&ftpClient.keyStore.file=./src/test/resources/server.jks&ftpClient.keyStore.type=JKS" + "&ftpClient.keyStore.algorithm=SunX509&ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password&delete=true"; Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,32 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest extends FileToFtpsExplicitSSLWithoutClientAuthTest { + + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("SSL"); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=false&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitSSLWithoutClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsExplicitSSLWithoutClientAuthTest extends FtpsServerExplicitSSLWithoutClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true&delete=true" + "&securityProtocol=SSL&isImplicit=false"; } Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,37 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyManagersParameters; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest extends FileToFtpsExplicitTLSWithClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + KeyManagersParameters kmp = new KeyManagersParameters(); + kmp.setKeyPassword("password"); + kmp.setKeyStore(ksp); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("TLS"); + sslContextParameters.setKeyManagers(kmp); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=false&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsExplicitTLSWithClientAuthTest extends FtpsServerExplicitTLSWithClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=TLS&isImplicit=false&ftpClient.keyStore.file=./src/test/resources/server.jks&ftpClient.keyStore.type=JKS" + "&ftpClient.keyStore.algorithm=SunX509&ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password&delete=true"; Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,31 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest extends FileToFtpsExplicitTLSWithoutClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("TLS"); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=false&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsExplicitTLSWithoutClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsExplicitTLSWithoutClientAuthTest extends FtpsServerExplicitTLSWithoutClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=TLS&isImplicit=false&delete=true"; } Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,37 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyManagersParameters; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest extends FileToFtpsImplicitSSLWithClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + KeyManagersParameters kmp = new KeyManagersParameters(); + kmp.setKeyPassword("password"); + kmp.setKeyStore(ksp); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("SSL"); + sslContextParameters.setKeyManagers(kmp); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=true&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsImplicitSSLWithClientAuthTest extends FtpsServerImplicitSSLWithClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=SSL&isImplicit=true&ftpClient.keyStore.file=./src/test/resources/server.jks&ftpClient.keyStore.type=JKS" + "&ftpClient.keyStore.algorithm=SunX509&ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password&delete=true"; Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,31 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest extends FileToFtpsImplicitSSLWithoutClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("SSL"); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=true&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitSSLWithoutClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsImplicitSSLWithoutClientAuthTest extends FtpsServerImplicitSSLWithoutClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=SSL&isImplicit=true&delete=true"; } Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,37 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyManagersParameters; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest extends FileToFtpsImplicitTLSWithClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + KeyManagersParameters kmp = new KeyManagersParameters(); + kmp.setKeyPassword("password"); + kmp.setKeyStore(ksp); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("TLS"); + sslContextParameters.setKeyManagers(kmp); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=true&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsImplicitTLSWithClientAuthTest extends FtpsServerImplicitTLSWithClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=TLS&isImplicit=true&ftpClient.keyStore.file=./src/test/resources/server.jks&ftpClient.keyStore.type=JKS" + "&ftpClient.keyStore.algorithm=SunX509&ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password&delete=true"; Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java?rev=1208903&view=auto ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java (added) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java Thu Dec 1 00:13:30 2011 @@ -0,0 +1,31 @@ +package org.apache.camel.component.file.remote; + +import org.apache.camel.impl.JndiRegistry; +import org.apache.camel.util.jsse.KeyStoreParameters; +import org.apache.camel.util.jsse.SSLContextParameters; +import org.apache.camel.util.jsse.TrustManagersParameters; + +public class FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest extends FileToFtpsImplicitTLSWithoutClientAuthTest { + @Override + protected JndiRegistry createRegistry() throws Exception { + KeyStoreParameters ksp = new KeyStoreParameters(); + ksp.setResource("server.jks"); + ksp.setPassword("password"); + + TrustManagersParameters tmp = new TrustManagersParameters(); + tmp.setKeyStore(ksp); + + SSLContextParameters sslContextParameters = new SSLContextParameters(); + sslContextParameters.setSecureSocketProtocol("TLS"); + sslContextParameters.setTrustManagers(tmp); + + JndiRegistry registry = super.createRegistry(); + registry.bind("sslContextParameters", sslContextParameters); + return registry; + } + + protected String getFtpUrl() { + return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + + "&isImplicit=true&sslContextParameters=#sslContextParameters&delete=true"; + } +} Propchange: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthAndSSLContextParametersTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthTest.java?rev=1208903&r1=1208902&r2=1208903&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FileToFtpsImplicitTLSWithoutClientAuthTest.java Thu Dec 1 00:13:30 2011 @@ -27,7 +27,7 @@ import org.junit.Test; */ public class FileToFtpsImplicitTLSWithoutClientAuthTest extends FtpsServerImplicitTLSWithoutClientAuthTestSupport { - private String getFtpUrl() { + protected String getFtpUrl() { return "ftps://admin@localhost:" + getPort() + "/tmp2/camel?password=admin&consumer.initialDelay=2000&disableSecureDataChannelDefaults=true" + "&securityProtocol=TLS&isImplicit=true&delete=true"; }