You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dv...@apache.org on 2011/12/01 01:13:33 UTC

svn commit: r1208903 - in /camel/trunk/components/camel-ftp/src: main/java/org/apache/camel/component/file/remote/ test/java/org/apache/camel/component/file/remote/

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";
     }