Class SshSessionFactory

java.lang.Object
org.eclipse.jgit.transport.SshSessionFactory
Direct Known Subclasses:
JschConfigSessionFactory, SshdSessionFactory

public abstract class SshSessionFactory extends Object
Creates and destroys SSH connections to a remote system.

Different implementations of the session factory may be used to control communicating with the end-user as well as reading their personal SSH configuration settings, such as known hosts and private keys.

A RemoteSession must be returned to the factory that created it. Callers are encouraged to retain the SshSessionFactory for the duration of the period they are using the session.

  • Field Details

  • Constructor Details

    • SshSessionFactory

      public SshSessionFactory()
  • Method Details

    • loadSshSessionFactory

      private static SshSessionFactory loadSshSessionFactory()
    • getInstance

      public static SshSessionFactory getInstance()
      Gets the currently configured JVM-wide factory.

      By default the factory will read from the user's $HOME/.ssh and assume OpenSSH compatibility.

      Returns:
      factory the current factory for this JVM.
    • setInstance

      public static void setInstance(SshSessionFactory newFactory)
      Changes the JVM-wide factory to a different implementation.
      Parameters:
      newFactory - factory for future sessions to be created through; if null the default factory will be restored.
    • getLocalUserName

      public static String getLocalUserName()
      Retrieves the local user name as defined by the system property "user.name".
      Returns:
      the user name
      Since:
      5.2
    • getSession

      public abstract RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms) throws TransportException
      Opens (or reuses) a session to a host. The returned session is connected and authenticated and is ready for further use.
      Parameters:
      uri - URI of the remote host to connect to
      credentialsProvider - provider to support authentication, may be null if no user input for authentication is needed
      fs - the file system abstraction to use for certain file operations, such as reading configuration files
      tms - connection timeout for creating the session, in milliseconds
      Returns:
      a connected and authenticated session for communicating with the remote host given by the uri
      Throws:
      TransportException - if the session could not be created
    • getType

      public abstract String getType()
      The name of the type of session factory.
      Returns:
      the name of the type of session factory.
      Since:
      5.8
    • releaseSession

      public void releaseSession(RemoteSession session)
      Closes (or recycles) a session to a host.
      Parameters:
      session - a session previously obtained from this factory's getSession(URIish, CredentialsProvider, FS, int) method.