Author: davsclaus
Date: Sat Nov 29 04:15:07 2008
New Revision: 721669

URL: http://svn.apache.org/viewvc?rev=721669&view=rev
Log:
CAMEL-1130: Added privateKeyFile support to SFTP

Modified:
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java?rev=721669&r1=721668&r2=721669&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
 Sat Nov 29 04:15:07 2008
@@ -37,6 +37,8 @@
     private boolean passiveMode;
     private String knownHosts;
     private String tempPrefix;
+    private String privateKeyFile;
+    private String privateKeyFilePassphrase;
 
     public RemoteFileConfiguration() {
     }
@@ -207,5 +209,21 @@
     public void setTempPrefix(String tempPrefix) {
         this.tempPrefix = tempPrefix;
     }
+
+    public String getPrivateKeyFile() {
+        return privateKeyFile;
+    }
+
+    public void setPrivateKeyFile(String privateKeyFile) {
+        this.privateKeyFile = privateKeyFile;
+    }
+
+    public String getPrivateKeyFilePassphrase() {
+        return privateKeyFilePassphrase;
+    }
+
+    public void setPrivateKeyFilePassphrase(String privateKeyFilePassphrase) {
+        this.privateKeyFilePassphrase = privateKeyFilePassphrase;
+    }
     
 }

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java?rev=721669&r1=721668&r2=721669&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
 Sat Nov 29 04:15:07 2008
@@ -25,6 +25,7 @@
 import org.apache.camel.Processor;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import static org.apache.camel.util.ObjectHelper.isNotNullAndNonEmpty;
 
 public class SftpEndpoint extends RemoteFileEndpoint<RemoteFileExchange> {
     protected final transient Log log = LogFactory.getLog(getClass());
@@ -49,8 +50,20 @@
 
     protected Session createSession() throws JSchException {
         final JSch jsch = new JSch();
+
+        String privateKeyFile = getConfiguration().getPrivateKeyFile();
+        if (isNotNullAndNonEmpty(privateKeyFile)) {
+            log.debug("Using private keyfile: " + privateKeyFile);
+            String privateKeyFilePassphrase = 
getConfiguration().getPrivateKeyFilePassphrase(); 
+            if (isNotNullAndNonEmpty(privateKeyFilePassphrase)) {
+                jsch.addIdentity(privateKeyFile, privateKeyFilePassphrase);
+            } else {
+                jsch.addIdentity(privateKeyFile);
+            }
+        }
+
         String knownHostsFile = getConfiguration().getKnownHosts();
-        if (knownHostsFile != null && knownHostsFile.trim().length() > 0) {
+        if (isNotNullAndNonEmpty(knownHostsFile)) {
             log.debug("Using knownHosts: " + knownHostsFile);
             jsch.setKnownHosts(knownHostsFile);
         }


Reply via email to