Class DefaultSftpSessionFactory
java.lang.Object
org.springframework.integration.sftp.session.DefaultSftpSessionFactory
- All Implemented Interfaces:
SessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>,SharedSessionCapable
public class DefaultSftpSessionFactory
extends Object
implements SessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>, SharedSessionCapable
Factory for creating
SftpSession instances.- Since:
- 2.0
- Author:
- Josh Long, Mario Gray, Oleg Zhurakousky, Gunnar Hillert, Gary Russell, David Liu, Pat Turner, Artem Bilan, Krzysztof Debski, Auke Zaaiman
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultSftpSessionFactory(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 TypeMethodDescriptionfinal booleanvoidResets the shared session so the next#getSession()will return a session using a new connection.voidsetAllowUnknownKeys(boolean allowUnknownKeys) When noknownHostshas been provided, set to true to unconditionally allow connecting to an unknown host or when a host's key has changed (seeknownHosts).voidThe url of the host you want to connect to.voidsetHostConfig(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig) Provide aHostConfigEntryas an alternative for the user/host/port options.voidsetKnownHostsResource(Resource knownHosts) Specifies aResourcethat will be used for a host key repository.voidsetPassword(String password) The password to authenticate against the remote host.voidsetPort(int port) The port over which the SFTP connection shall be established.voidsetPrivateKey(Resource privateKey) Allows you to set aResource, which represents the location of the private key used for authenticating against the remote host.voidsetPrivateKeyPassphrase(String privateKeyPassphrase) The password for the private key.voidsetSftpVersionSelector(org.apache.sshd.sftp.client.SftpVersionSelector sftpVersionSelector) voidsetTimeout(Integer timeout) The timeout property is used as the socket timeout parameter, as well as the default connection timeout.voidThe remote user to use.voidsetUserInteraction(org.apache.sshd.client.auth.keyboard.UserInteraction userInteraction) Provide aUserInteractionwhich exposes control over dealing with new keys or key changes.
-
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
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 to22. If specified, this properties must be a positive number.- Parameters:
port- The port.- See Also:
-
ClientSessionCreator.connect(String, String, int)
-
setUser
The remote user to use. This is a mandatory property.- Parameters:
user- The user.- See Also:
-
ClientSessionCreator.connect(String, String, int)
-
setPassword
The password to authenticate against the remote host. If a password is not provided, then aprivateKeyis mandatory.- Parameters:
password- The password.- See Also:
-
SshClient.setPasswordIdentityProvider(PasswordIdentityProvider)
-
setHostConfig
public void setHostConfig(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig) Provide aHostConfigEntryas an alternative for the user/host/port options. Can be configured with a proxy jump property.- Parameters:
hostConfig- theHostConfigEntryfor connection.- Since:
- 6.0
- See Also:
-
ClientSessionCreator.connect(HostConfigEntry)
-
setKnownHostsResource
Specifies aResourcethat 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
Allows you to set aResource, which represents the location of the private key used for authenticating against the remote host. If the privateKey is not provided, then thepasswordproperty is mandatory.- Parameters:
privateKey- The private key.- See Also:
-
SshClient.setKeyIdentityProvider(KeyIdentityProvider)
-
setPrivateKeyPassphrase
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 aUserInteractionwhich 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 noknownHostshas been provided, set to true to unconditionally allow connecting to an unknown host or when a host's key has changed (seeknownHosts). 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
The timeout property is used as the socket timeout parameter, as well as the default connection timeout. Defaults to0, 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
- Specified by:
getSessionin interfaceSessionFactory<org.apache.sshd.sftp.client.SftpClient.DirEntry>
-