Class DefaultSftpSessionFactory

java.lang.Object
org.springframework.integration.sftp.session.DefaultSftpSessionFactory
All Implemented Interfaces:
org.springframework.integration.file.remote.session.SessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>, org.springframework.integration.file.remote.session.SharedSessionCapable

public class DefaultSftpSessionFactory extends Object implements org.springframework.integration.file.remote.session.SessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>, org.springframework.integration.file.remote.session.SharedSessionCapable
Factory for creating SftpSession instances.
Since:
2.0
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    DefaultSftpSessionFactory(boolean isSharedSession)
     
    DefaultSftpSessionFactory(org.apache.sshd.client.SshClient sshClient, boolean isSharedSession)
    Intended for use in tests so the MINA SSHD can be mocked.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    final boolean
     
    void
     
    void
    setAllowUnknownKeys(boolean allowUnknownKeys)
    When no knownHosts has been provided, set to true to unconditionally allow connecting to an unknown host or when a host's key has changed (see knownHosts).
    void
    The url of the host you want to connect to.
    void
    setHostConfig(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
    Provide a HostConfigEntry as an alternative for the user/host/port options.
    void
    setKnownHostsResource(org.springframework.core.io.Resource knownHosts)
    Specifies a Resource that will be used for a host key repository.
    void
    setPassword(String password)
    The password to authenticate against the remote host.
    void
    setPort(int port)
    The port over which the SFTP connection shall be established.
    void
    setPrivateKey(org.springframework.core.io.Resource privateKey)
    Allows you to set a Resource, which represents the location of the private key used for authenticating against the remote host.
    void
    setPrivateKeyPassphrase(String privateKeyPassphrase)
    The password for the private key.
    void
    setSftpVersionSelector(org.apache.sshd.sftp.client.SftpVersionSelector sftpVersionSelector)
     
    void
    The timeout property is used as the socket timeout parameter, as well as the default connection timeout.
    void
    The remote user to use.
    void
    setUserInteraction(org.apache.sshd.client.auth.keyboard.UserInteraction userInteraction)
    Provide a UserInteraction which exposes control over dealing with new keys or key changes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DefaultSftpSessionFactory

      public DefaultSftpSessionFactory()
    • DefaultSftpSessionFactory

      public DefaultSftpSessionFactory(boolean isSharedSession)
      Parameters:
      isSharedSession - true if the session is to be shared.
    • DefaultSftpSessionFactory

      public DefaultSftpSessionFactory(org.apache.sshd.client.SshClient sshClient, boolean isSharedSession)
      Intended for use in tests so the MINA SSHD can be mocked.
      Parameters:
      sshClient - The SshClient instance.
      isSharedSession - true if the session is to be shared.
  • Method Details

    • setHost

      public void setHost(String host)
      The url of the host you want to connect to. This is a mandatory property.
      Parameters:
      host - The host.
      See Also:
      • ClientSessionCreator.connect(String, String, int)
    • setPort

      public void setPort(int port)
      The port over which the SFTP connection shall be established. If not specified, this value defaults to 22. If specified, this properties must be a positive number.
      Parameters:
      port - The port.
      See Also:
      • ClientSessionCreator.connect(String, String, int)
    • setUser

      public void setUser(String user)
      The remote user to use. This is a mandatory property.
      Parameters:
      user - The user.
      See Also:
      • ClientSessionCreator.connect(String, String, int)
    • setPassword

      public void setPassword(String password)
      The password to authenticate against the remote host. If a password is not provided, then a privateKey is mandatory.
      Parameters:
      password - The password.
      See Also:
      • SshClient.setPasswordIdentityProvider(PasswordIdentityProvider)
    • setHostConfig

      public void setHostConfig(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
      Provide a HostConfigEntry as an alternative for the user/host/port options. Can be configured with a proxy jump property.
      Parameters:
      hostConfig - the HostConfigEntry for connection.
      Since:
      6.0
      See Also:
      • ClientSessionCreator.connect(HostConfigEntry)
    • setKnownHostsResource

      public void setKnownHostsResource(org.springframework.core.io.Resource knownHosts)
      Specifies a Resource that will be used for a host key repository. The data has to have the same format as OpenSSH's known_hosts file.
      Parameters:
      knownHosts - the resource for known hosts.
      Since:
      5.2.5
      See Also:
      • SshClient.setServerKeyVerifier(ServerKeyVerifier)
    • setPrivateKey

      public void setPrivateKey(org.springframework.core.io.Resource privateKey)
      Allows you to set a Resource, which represents the location of the private key used for authenticating against the remote host. If the privateKey is not provided, then the password property is mandatory.
      Parameters:
      privateKey - The private key.
      See Also:
      • SshClient.setKeyIdentityProvider(KeyIdentityProvider)
    • setPrivateKeyPassphrase

      public void setPrivateKeyPassphrase(String privateKeyPassphrase)
      The password for the private key. Optional.
      Parameters:
      privateKeyPassphrase - The private key passphrase.
      See Also:
      • SshClient.setKeyIdentityProvider(KeyIdentityProvider)
    • setUserInteraction

      public void setUserInteraction(org.apache.sshd.client.auth.keyboard.UserInteraction userInteraction)
      Provide a UserInteraction which exposes control over dealing with new keys or key changes. As Spring Integration will not normally allow user interaction, the implementation must respond to SSH protocol calls in a suitable way.
      Parameters:
      userInteraction - the UserInteraction.
      Since:
      4.1.7
      See Also:
      • SshClient.setUserInteraction(UserInteraction)
    • setAllowUnknownKeys

      public void setAllowUnknownKeys(boolean allowUnknownKeys)
      When no knownHosts has been provided, set to true to unconditionally allow connecting to an unknown host or when a host's key has changed (see knownHosts). Default false (since 4.2). Set to true if a knownHosts file is not provided.
      Parameters:
      allowUnknownKeys - true to allow connecting to unknown hosts.
      Since:
      4.1.7
    • setTimeout

      public void setTimeout(Integer timeout)
      The timeout property is used as the socket timeout parameter, as well as the default connection timeout. Defaults to 0, which means, that no timeout will occur.
      Parameters:
      timeout - The timeout.
      See Also:
      • VerifiableFuture.verify(long)
    • setSftpVersionSelector

      public void setSftpVersionSelector(org.apache.sshd.sftp.client.SftpVersionSelector sftpVersionSelector)
    • getSession

      public SftpSession getSession()
      Specified by:
      getSession in interface org.springframework.integration.file.remote.session.SessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>
    • isSharedSession

      public final boolean isSharedSession()
      Specified by:
      isSharedSession in interface org.springframework.integration.file.remote.session.SharedSessionCapable
    • resetSharedSession

      public void resetSharedSession()
      Specified by:
      resetSharedSession in interface org.springframework.integration.file.remote.session.SharedSessionCapable