You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by im...@apache.org on 2005/04/02 23:03:01 UTC

svn commit: r159812 - in jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs: Resources.properties provider/sftp/SftpClientFactory.java provider/sftp/SftpFileSystem.java provider/sftp/SftpFileSystemConfigBuilder.java

Author: imario
Date: Sat Apr  2 13:03:01 2005
New Revision: 159812

URL: http://svn.apache.org/viewcvs?view=rev&rev=159812
Log:
sftp: moved configure of compression to its correct place
sftp: added "StrictHostKeyChecking" - possible values yes/no/ask

Submitted by: Thomas Kalbitz

Thanks!

Modified:
    jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
    jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpClientFactory.java
    jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java
    jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java

Modified: jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties?view=diff&r1=159811&r2=159812
==============================================================================
--- jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties (original)
+++ jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/Resources.properties Sat Apr  2 13:03:01 2005
@@ -222,6 +222,7 @@
 vfs.provider.sftp/config-sshdir.error=SSH-Folder "{0}" non existent or not a folder.
 vfs.provider.sftp/unknown-modtime.error=Last modification time not fetched.
 vfs.provider.sftp/known-hosts.error=Error during processing known-hosts file "{0}".
+vfs.provider.sftp/StrictHostKeyChecking-arg.error=Illegal argument "{0}" hostKeyChecking can only be "ask", "yes" or "no"
 
 # Ant tasks
 vfs.tasks/sync.no-destination.error=No destination file or directory specified.

Modified: jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpClientFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpClientFactory.java?view=diff&r1=159811&r2=159812
==============================================================================
--- jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpClientFactory.java (original)
+++ jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpClientFactory.java Sat Apr  2 13:03:01 2005
@@ -24,6 +24,7 @@
 import org.apache.commons.vfs.util.Os;
 
 import java.io.File;
+import java.util.Properties;
 
 /**
  * Create a HttpClient instance
@@ -125,14 +126,37 @@
         try
         {
             session = jsch.getSession(username,
-                hostname,
-                port);
+                    hostname,
+                    port);
             session.setPassword(password);
 
             UserInfo userInfo = SftpFileSystemConfigBuilder.getInstance().getUserInfo(fileSystemOptions);
             if (userInfo != null)
             {
                 session.setUserInfo(userInfo);
+            }
+
+            Properties config = new Properties();
+
+            //set StrictHostKeyChecking property
+            String strictHostKeyChecking = SftpFileSystemConfigBuilder.getInstance().getStrictHostKeyChecking(fileSystemOptions);
+            if (strictHostKeyChecking != null)
+            {
+                config.setProperty("StrictHostKeyChecking", strictHostKeyChecking);
+            }
+
+            //set compression property
+            String compression = SftpFileSystemConfigBuilder.getInstance().getCompression(fileSystemOptions);
+            if (compression != null)
+            {
+                config.setProperty("compression.s2c", strictHostKeyChecking);
+                config.setProperty("compression.c2s", strictHostKeyChecking);
+            }
+
+            //set properties for the session
+            if (config.size() > 0)
+            {
+                session.setConfig(config);
             }
 
             session.connect();

Modified: jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java?view=diff&r1=159811&r2=159812
==============================================================================
--- jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java (original)
+++ jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java Sat Apr  2 13:03:01 2005
@@ -28,7 +28,6 @@
 
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Hashtable;
 
 /**
  * Represents the files on an SFTP server.
@@ -85,24 +84,6 @@
                     rootName.getUserName(),
                     rootName.getPassword(),
                     getFileSystemOptions());
-
-                Hashtable config = null;
-
-                String compression = SftpFileSystemConfigBuilder.getInstance().getCompression(getFileSystemOptions());
-                if (compression != null)
-                {
-                    if (config == null)
-                    {
-                        config = new Hashtable();
-                    }
-                    config.put("compression.c2s", compression);
-                    config.put("compression.s2c", compression);
-                }
-
-                if (config != null)
-                {
-                    session.setConfig(config);
-                }
             }
             catch (final Exception e)
             {

Modified: jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java?view=diff&r1=159811&r2=159812
==============================================================================
--- jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java (original)
+++ jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java Sat Apr  2 13:03:01 2005
@@ -131,6 +131,35 @@
         return (File[]) getParam(opts, "identities");
     }
 
+    /**
+     * configure the host key checking to use.<br>
+     * valid arguments are only yes, no and ask.<br>
+     * See the jsch documentation for details.
+     *
+     * @param opts
+     * @param hostKeyChecking
+     * @throws FileSystemException
+     */
+    public void setStrictHostKeyChecking(FileSystemOptions opts, String hostKeyChecking) throws FileSystemException
+    {
+        if (hostKeyChecking == null || (!hostKeyChecking.equals("ask") && !hostKeyChecking.equals("no") && !hostKeyChecking.equals("yes")))
+        {
+            throw new FileSystemException("vfs.provider.sftp/StrictHostKeyChecking-arg.error", hostKeyChecking);
+        }
+
+        setParam(opts, "StrictHostKeyChecking", hostKeyChecking);
+    }
+
+    /**
+     * @param opts
+     * @return the option value
+     * @see #setStrictHostKeyChecking(FileSystemOptions, String)
+     */
+    public String getStrictHostKeyChecking(FileSystemOptions opts)
+    {
+        return (String) getParam(opts, "StrictHostKeyChecking");
+    }
+
     protected Class getConfigClass()
     {
         return SftpFileSystem.class;



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org