You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ad...@apache.org on 2003/06/24 12:37:11 UTC
cvs commit: jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp SftpFileProvider.java
adammurdoch 2003/06/24 03:37:11
Modified: vfs/src/java/org/apache/commons/vfs/provider/sftp
SftpFileProvider.java
Log:
Add support to SftpFileProvider for loading the user's private key.
Patch submitted by Steve ?
Revision Changes Path
1.2 +27 -6 jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileProvider.java
Index: SftpFileProvider.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileProvider.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SftpFileProvider.java 20 Feb 2003 07:30:36 -0000 1.1
+++ SftpFileProvider.java 24 Jun 2003 10:37:11 -0000 1.2
@@ -62,6 +62,8 @@
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
import org.apache.commons.vfs.provider.GenericFileName;
import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import java.io.File;
/**
* A provider for accessing files over SFTP.
@@ -79,20 +81,39 @@
*/
public void init() throws FileSystemException
{
- // Figure out where the known_hosts file is
- final String knownHostsPath;
+ // Figure out where the ssh directory is
+ final File sshDir;
if ( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
// TODO - this may not be true
final String userName = System.getProperty( "user.name" );
- knownHostsPath = "C:\\cygwin\\home\\" + userName + "\\.ssh\\known_hosts";
+ sshDir = new File("C:\\cygwin\\home\\" + userName + "\\.ssh" );
}
else
{
- knownHostsPath = System.getProperty( "user.home") + "/.ssh/known_hosts";
+ sshDir = new File( System.getProperty( "user.home" ), ".ssh" );
}
- jSch.setKnownHosts( knownHostsPath );
+ // Load the known hosts file
+ final File knownHostsFile = new File(sshDir, "known_hosts");
+ if ( knownHostsFile.isFile() && knownHostsFile.canRead() )
+ {
+ jSch.setKnownHosts( knownHostsFile.getAbsolutePath() );
+ }
+
+ // Load the private key
+ final File privateKeyFile = new File( sshDir, "id_rsa" );
+ if ( privateKeyFile.isFile() && privateKeyFile.canRead() )
+ {
+ try
+ {
+ jSch.addIdentity(privateKeyFile.getAbsolutePath());
+ }
+ catch ( final JSchException e )
+ {
+ throw new FileSystemException("vfs.provider.sftp/load-private-key.error", privateKeyFile, e);
+ }
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org