org.eclipse.jgit.transport
Class JschConfigSessionFactory

java.lang.Object
  extended by org.eclipse.jgit.transport.SshSessionFactory
      extended by org.eclipse.jgit.transport.JschConfigSessionFactory

public abstract class JschConfigSessionFactory
extends SshSessionFactory

The base session factory that loads known hosts and private keys from $HOME/.ssh.

This is the default implementation used by JGit and provides most of the compatibility necessary to match OpenSSH, a popular implementation of SSH used by C Git.

The factory does not provide UI behavior. Override the method configure(org.eclipse.jgit.transport.OpenSshConfig.Host, Session) to supply appropriate UserInfo to the session.


Constructor Summary
JschConfigSessionFactory()
           
 
Method Summary
protected abstract  void configure(OpenSshConfig.Host hc, com.jcraft.jsch.Session session)
          Provide additional configuration for the session based on the host information.
protected  com.jcraft.jsch.JSch createDefaultJSch(FS fs)
           
protected  com.jcraft.jsch.Session createSession(OpenSshConfig.Host hc, String user, String host, int port, FS fs)
          Create a new remote session for the requested address.
protected  com.jcraft.jsch.JSch getJSch(OpenSshConfig.Host hc, FS fs)
          Obtain the JSch used to create new sessions.
 RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms)
          Open (or reuse) a session to a host.
 
Methods inherited from class org.eclipse.jgit.transport.SshSessionFactory
getInstance, releaseSession, setInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JschConfigSessionFactory

public JschConfigSessionFactory()
Method Detail

getSession

public RemoteSession getSession(URIish uri,
                                CredentialsProvider credentialsProvider,
                                FS fs,
                                int tms)
                         throws TransportException
Description copied from class: SshSessionFactory
Open (or reuse) a session to a host.

A reasonable UserInfo that can interact with the end-user (if necessary) is installed on the returned session by this method.

The caller must connect the session by invoking connect() if it has not already been connected.

Specified by:
getSession in class SshSessionFactory
Parameters:
uri - URI information about the remote host
credentialsProvider - provider to support authentication, may be null.
fs - the file system abstraction which will be necessary to perform certain file system operations.
tms - Timeout value, in milliseconds.
Returns:
a session that can contact the remote host.
Throws:
TransportException - the session could not be created.

createSession

protected com.jcraft.jsch.Session createSession(OpenSshConfig.Host hc,
                                                String user,
                                                String host,
                                                int port,
                                                FS fs)
                                         throws com.jcraft.jsch.JSchException
Create a new remote session for the requested address.

Parameters:
hc - host configuration
user - login to authenticate as.
host - server name to connect to.
port - port number of the SSH daemon (typically 22).
fs - the file system abstraction which will be necessary to perform certain file system operations.
Returns:
new session instance, but otherwise unconfigured.
Throws:
com.jcraft.jsch.JSchException - the session could not be created.

configure

protected abstract void configure(OpenSshConfig.Host hc,
                                  com.jcraft.jsch.Session session)
Provide additional configuration for the session based on the host information. This method could be used to supply UserInfo.

Parameters:
hc - host configuration
session - session to configure

getJSch

protected com.jcraft.jsch.JSch getJSch(OpenSshConfig.Host hc,
                                       FS fs)
                                throws com.jcraft.jsch.JSchException
Obtain the JSch used to create new sessions.

Parameters:
hc - host configuration
fs - the file system abstraction which will be necessary to perform certain file system operations.
Returns:
the JSch instance to use.
Throws:
com.jcraft.jsch.JSchException - the user configuration could not be created.

createDefaultJSch

protected com.jcraft.jsch.JSch createDefaultJSch(FS fs)
                                          throws com.jcraft.jsch.JSchException
Parameters:
fs - the file system abstraction which will be necessary to perform certain file system operations.
Returns:
the new default JSch implementation.
Throws:
com.jcraft.jsch.JSchException - known host keys cannot be loaded.


Copyright © 2012. All Rights Reserved.