Class JGitSshClient
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.util.closeable.IoBaseCloseable
-
- org.apache.sshd.common.util.closeable.AbstractCloseable
-
- org.apache.sshd.common.util.closeable.AbstractInnerCloseable
-
- org.apache.sshd.common.kex.AbstractKexFactoryManager
-
- org.apache.sshd.common.helpers.AbstractFactoryManager
-
- org.apache.sshd.client.SshClient
-
- org.eclipse.jgit.internal.transport.sshd.JGitSshClient
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.nio.channels.Channel,org.apache.sshd.client.ClientAuthenticationManager,org.apache.sshd.client.ClientFactoryManager,org.apache.sshd.client.config.keys.ClientIdentityLoaderHolder,org.apache.sshd.client.config.keys.ClientIdentityLoaderManager,org.apache.sshd.client.session.ClientProxyConnectorHolder,org.apache.sshd.client.session.ClientSessionCreator,org.apache.sshd.common.AttributeRepository,org.apache.sshd.common.AttributeStore,org.apache.sshd.common.auth.UserAuthFactoriesManager<org.apache.sshd.client.session.ClientSession,org.apache.sshd.client.auth.UserAuth,org.apache.sshd.client.auth.UserAuthFactory>,org.apache.sshd.common.channel.ChannelListenerManager,org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolver,org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolverManager,org.apache.sshd.common.Closeable,org.apache.sshd.common.config.keys.FilePasswordProviderHolder,org.apache.sshd.common.config.keys.FilePasswordProviderManager,org.apache.sshd.common.FactoryManager,org.apache.sshd.common.forward.PortForwardingEventListenerManager,org.apache.sshd.common.io.IoServiceEventListenerManager,org.apache.sshd.common.kex.extension.KexExtensionHandlerManager,org.apache.sshd.common.kex.KexFactoryManager,org.apache.sshd.common.keyprovider.KeyIdentityProviderHolder,org.apache.sshd.common.PropertyResolver,org.apache.sshd.common.session.ReservedSessionMessagesManager,org.apache.sshd.common.session.SessionDisconnectHandlerManager,org.apache.sshd.common.session.SessionHeartbeatController,org.apache.sshd.common.session.SessionListenerManager,org.apache.sshd.common.session.UnknownChannelReferenceHandlerManager,org.apache.sshd.common.signature.SignatureFactoriesHolder,org.apache.sshd.common.signature.SignatureFactoriesManager
public class JGitSshClient extends org.apache.sshd.client.SshClientCustomizedSshClientfor JGit. It creates specializedJGitClientSessions that know about theHostConfigEntrythey were created for, and it loads all KeyPair identities lazily.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJGitSshClient.CombinedKeyIdentityProviderAKeyIdentityProviderthat iterates over theIterables returned by otherKeyIdentityProviders.private static classJGitSshClient.JGitSessionFactoryASessionFactoryto create our own specializedJGitClientSessions.-
Nested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
org.apache.sshd.common.util.closeable.AbstractCloseable.State
-
-
Field Summary
Fields Modifier and Type Field Description private CredentialsProvidercredentialsProvider(package private) static org.apache.sshd.common.AttributeRepository.AttributeKey<org.apache.sshd.client.config.hosts.HostConfigEntry>HOST_CONFIG_ENTRYWe need access to this during the constructor of the ClientSession, before setConnectAddress() can have been called.private KeyCachekeyCachestatic org.apache.sshd.common.AttributeRepository.AttributeKey<org.apache.sshd.common.util.net.SshdSocketAddress>LOCAL_FORWARD_ADDRESSAn attribute key for storing an alternate local address to connect to if a local forward from a ProxyJump ssh config is present.(package private) static org.apache.sshd.common.AttributeRepository.AttributeKey<java.net.InetSocketAddress>ORIGINAL_REMOTE_ADDRESSstatic org.apache.sshd.common.AttributeRepository.AttributeKey<java.lang.String>PREFERRED_AUTHENTICATIONSAn attribute key for the comma-separated list of default preferred authentication mechanisms.private ProxyDataFactoryproxyDatabase-
Fields inherited from class org.apache.sshd.client.SshClient
connector, DEFAULT_SERVICE_FACTORIES, DEFAULT_SSH_CLIENT_FACTORY, DEFAULT_USER_AUTH_FACTORIES, sessionFactory, userAuthFactories
-
Fields inherited from class org.apache.sshd.common.helpers.AbstractFactoryManager
agentFactory, channelFactories, channelListenerProxy, channelListeners, executor, fileSystemFactory, forwarderFactory, forwardingFilter, globalRequestHandlers, ioServiceFactory, ioServiceFactoryFactory, randomFactory, serviceFactories, sessionListenerProxy, sessionListeners, sessionTimeoutListener, shutdownExecutor, timeoutListenerFuture, tunnelListenerProxy, tunnelListeners
-
Fields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, state
-
-
Constructor Summary
Constructors Constructor Description JGitSshClient()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private org.apache.sshd.common.AttributeRepositorychain(org.apache.sshd.common.AttributeRepository self, org.apache.sshd.common.AttributeRepository parent)private java.net.InetSocketAddressconfigureProxy(ProxyData proxyData, java.net.InetSocketAddress remoteAddress)org.apache.sshd.client.future.ConnectFutureconnect(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig, org.apache.sshd.common.AttributeRepository context, java.net.SocketAddress localAddress)private org.apache.sshd.common.future.SshFutureListener<org.apache.sshd.common.io.IoConnectFuture>createConnectCompletionListener(org.apache.sshd.client.future.ConnectFuture connectFuture, java.lang.String username, java.net.InetSocketAddress address, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)private JGitClientSessioncreateSession(org.apache.sshd.common.io.IoSession ioSession, java.lang.String username, java.net.InetSocketAddress address, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)protected org.apache.sshd.client.session.SessionFactorycreateSessionFactory()CredentialsProvidergetCredentialsProvider()Retrieves theCredentialsProviderset for this client.private intgetNumberOfPasswordPrompts(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)private ProxyDatagetProxyData(java.net.InetSocketAddress remoteAddress)protected ProxyDataFactorygetProxyDatabase()Retrieves theProxyDataFactory.private org.apache.sshd.common.AttributeRepositorysessionAttributes(org.apache.sshd.common.AttributeRepository parent, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig, java.net.InetSocketAddress originalAddress)voidsetCredentialsProvider(CredentialsProvider provider)Sets theCredentialsProviderfor this client.voidsetKeyCache(KeyCache cache)Set a cache for loaded keys.voidsetProxyDatabase(ProxyDataFactory factory)Sets aProxyDataFactoryfor connecting through proxies.-
Methods inherited from class org.apache.sshd.client.SshClient
addPasswordIdentity, addPublicKeyIdentity, checkConfig, connect, connect, connect, createConnectCompletionListener, createConnector, doConnect, doConnect, ensureFilePasswordProvider, getClientIdentityLoader, getClientProxyConnector, getFilePasswordProvider, getHostBasedAuthenticationReporter, getHostConfigEntryResolver, getInnerCloseable, getKeyIdentityProvider, getPasswordAuthenticationReporter, getPasswordIdentityProvider, getPublicKeyAuthenticationReporter, getRegisteredIdentities, getServerKeyVerifier, getSessionFactory, getUserAuthFactories, getUserInteraction, isStarted, onConnectOperationComplete, open, parseProxyJumps, parseProxyJumps, preloadClientIdentities, removePasswordIdentity, removePublicKeyIdentity, resolveHost, setClientIdentityLoader, setClientProxyConnector, setFilePasswordProvider, setHostBasedAuthenticationReporter, setHostConfigEntryResolver, setKeyIdentityProvider, setKeyPairProvider, setKeyPairProvider, setPasswordAuthenticationReporter, setPasswordIdentityProvider, setPublicKeyAuthenticationReporter, setServerKeyVerifier, setSessionFactory, setUpDefaultClient, setupDefaultSessionIdentities, setUpDefaultSimpleClient, setUserAuthFactories, setUserInteraction, start, stop, toString, wrapAsSimpleClient
-
Methods inherited from class org.apache.sshd.common.helpers.AbstractFactoryManager
addChannelListener, addPortForwardingEventListener, addSessionListener, attributeKeys, clearAttributes, computeAttributeIfAbsent, createSessionTimeoutListener, getAgentFactory, getAttribute, getAttributesCount, getChannelFactories, getChannelListenerProxy, getChannelStreamWriterResolver, getFileSystemFactory, getForwarderFactory, getForwardingFilter, getGlobalRequestHandlers, getIoServiceEventListener, getIoServiceFactory, getIoServiceFactoryFactory, getNioWorkers, getParentPropertyResolver, getPortForwardingEventListenerProxy, getProperties, getRandomFactory, getReservedSessionMessagesHandler, getScheduledExecutorService, getServiceFactories, getSessionDisconnectHandler, getSessionListenerProxy, getUnknownChannelReferenceHandler, getVersion, removeAttribute, removeChannelListener, removePortForwardingEventListener, removeSessionListener, removeSessionTimeout, resolveUnknownChannelReferenceHandler, setAgentFactory, setAttribute, setChannelFactories, setChannelStreamWriterResolver, setFileSystemFactory, setForwarderFactory, setForwardingFilter, setGlobalRequestHandlers, setIoServiceEventListener, setIoServiceFactoryFactory, setNioWorkers, setParentPropertyResolver, setRandomFactory, setReservedSessionMessagesHandler, setScheduledExecutorService, setScheduledExecutorService, setServiceFactories, setSessionDisconnectHandler, setUnknownChannelReferenceHandler, setupSessionTimeout, stopSessionTimeoutListener
-
Methods inherited from class org.apache.sshd.common.kex.AbstractKexFactoryManager
getCipherFactories, getCompressionFactories, getDelegate, getKexExtensionHandler, getKeyExchangeFactories, getMacFactories, getSignatureFactories, resolveEffectiveFactories, resolveEffectiveProvider, setCipherFactories, setCompressionFactories, setKexExtensionHandler, setKeyExchangeFactories, setMacFactories, setSignatureFactories
-
Methods inherited from class org.apache.sshd.common.util.closeable.AbstractInnerCloseable
doCloseGracefully, doCloseImmediately
-
Methods inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
addCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, preClose, removeCloseFutureListener
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.AttributeRepository
attributeKeys, getAttribute, getAttributesCount
-
Methods inherited from interface org.apache.sshd.common.AttributeStore
clearAttributes, computeAttributeIfAbsent, removeAttribute, setAttribute
-
Methods inherited from interface org.apache.sshd.common.channel.ChannelListenerManager
addChannelListener, getChannelListenerProxy, removeChannelListener
-
Methods inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolverManager
getChannelStreamWriterResolver, resolveChannelStreamWriter, resolveChannelStreamWriterResolver, setChannelStreamWriterResolver
-
Methods inherited from interface org.apache.sshd.client.ClientAuthenticationManager
setUserAuthFactoriesNames
-
Methods inherited from interface org.apache.sshd.client.session.ClientSessionCreator
connect, connect, connect, connect, connect, connect, connect, connect, connect
-
Methods inherited from interface org.apache.sshd.common.FactoryManager
getAgentFactory, getAgentForwardingFilter, getChannelFactories, getFileSystemFactory, getForwarderFactory, getForwardingFilter, getGlobalRequestHandlers, getIoServiceFactory, getRandomFactory, getScheduledExecutorService, getServiceFactories, getTcpForwardingFilter, getVersion, getX11ForwardingFilter, resolveAttribute
-
Methods inherited from interface org.apache.sshd.common.io.IoServiceEventListenerManager
getIoServiceEventListener, setIoServiceEventListener
-
Methods inherited from interface org.apache.sshd.common.kex.extension.KexExtensionHandlerManager
getKexExtensionHandler, setKexExtensionHandler
-
Methods inherited from interface org.apache.sshd.common.kex.KexFactoryManager
getCipherFactories, getCipherFactoriesNameList, getCipherFactoriesNames, getCompressionFactories, getCompressionFactoriesNameList, getCompressionFactoriesNames, getKeyExchangeFactories, getMacFactories, getMacFactoriesNameList, getMacFactoriesNames, setCipherFactories, setCipherFactoriesNameList, setCipherFactoriesNames, setCipherFactoriesNames, setCompressionFactories, setCompressionFactoriesNameList, setCompressionFactoriesNames, setCompressionFactoriesNames, setKeyExchangeFactories, setMacFactories, setMacFactoriesNameList, setMacFactoriesNames, setMacFactoriesNames
-
Methods inherited from interface org.apache.sshd.common.forward.PortForwardingEventListenerManager
addPortForwardingEventListener, getPortForwardingEventListenerProxy, removePortForwardingEventListener
-
Methods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, getParentPropertyResolver, getProperties, getString, getStringProperty, isEmpty
-
Methods inherited from interface org.apache.sshd.common.session.ReservedSessionMessagesManager
getReservedSessionMessagesHandler, setReservedSessionMessagesHandler
-
Methods inherited from interface org.apache.sshd.common.session.SessionDisconnectHandlerManager
getSessionDisconnectHandler, setSessionDisconnectHandler
-
Methods inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
disableSessionHeartbeat, getSessionHeartbeatInterval, getSessionHeartbeatType, setSessionHeartbeat, setSessionHeartbeat
-
Methods inherited from interface org.apache.sshd.common.session.SessionListenerManager
addSessionListener, getSessionListenerProxy, removeSessionListener
-
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesHolder
getSignatureFactories, getSignatureFactoriesNameList, getSignatureFactoriesNames
-
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesManager
setSignatureFactories, setSignatureFactoriesNameList, setSignatureFactoriesNames, setSignatureFactoriesNames
-
-
-
-
Field Detail
-
HOST_CONFIG_ENTRY
static final org.apache.sshd.common.AttributeRepository.AttributeKey<org.apache.sshd.client.config.hosts.HostConfigEntry> HOST_CONFIG_ENTRY
We need access to this during the constructor of the ClientSession, before setConnectAddress() can have been called. So we have to remember it in an attribute on the SshClient, from where we can then retrieve it.
-
ORIGINAL_REMOTE_ADDRESS
static final org.apache.sshd.common.AttributeRepository.AttributeKey<java.net.InetSocketAddress> ORIGINAL_REMOTE_ADDRESS
-
PREFERRED_AUTHENTICATIONS
public static final org.apache.sshd.common.AttributeRepository.AttributeKey<java.lang.String> PREFERRED_AUTHENTICATIONS
An attribute key for the comma-separated list of default preferred authentication mechanisms.
-
LOCAL_FORWARD_ADDRESS
public static final org.apache.sshd.common.AttributeRepository.AttributeKey<org.apache.sshd.common.util.net.SshdSocketAddress> LOCAL_FORWARD_ADDRESS
An attribute key for storing an alternate local address to connect to if a local forward from a ProxyJump ssh config is present. If set,connect(HostConfigEntry, AttributeRepository, SocketAddress)will not connect to the address obtained from theHostConfigEntrybut to the address stored in this key (which is assumed to forward theHostConfigEntryaddress).
-
keyCache
private KeyCache keyCache
-
credentialsProvider
private CredentialsProvider credentialsProvider
-
proxyDatabase
private ProxyDataFactory proxyDatabase
-
-
Method Detail
-
createSessionFactory
protected org.apache.sshd.client.session.SessionFactory createSessionFactory()
- Overrides:
createSessionFactoryin classorg.apache.sshd.client.SshClient
-
connect
public org.apache.sshd.client.future.ConnectFuture connect(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig, org.apache.sshd.common.AttributeRepository context, java.net.SocketAddress localAddress) throws java.io.IOException- Specified by:
connectin interfaceorg.apache.sshd.client.session.ClientSessionCreator- Overrides:
connectin classorg.apache.sshd.client.SshClient- Throws:
java.io.IOException
-
chain
private org.apache.sshd.common.AttributeRepository chain(org.apache.sshd.common.AttributeRepository self, org.apache.sshd.common.AttributeRepository parent)
-
sessionAttributes
private org.apache.sshd.common.AttributeRepository sessionAttributes(org.apache.sshd.common.AttributeRepository parent, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig, java.net.InetSocketAddress originalAddress)
-
getProxyData
private ProxyData getProxyData(java.net.InetSocketAddress remoteAddress)
-
configureProxy
private java.net.InetSocketAddress configureProxy(ProxyData proxyData, java.net.InetSocketAddress remoteAddress)
-
createConnectCompletionListener
private org.apache.sshd.common.future.SshFutureListener<org.apache.sshd.common.io.IoConnectFuture> createConnectCompletionListener(org.apache.sshd.client.future.ConnectFuture connectFuture, java.lang.String username, java.net.InetSocketAddress address, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
-
createSession
private JGitClientSession createSession(org.apache.sshd.common.io.IoSession ioSession, java.lang.String username, java.net.InetSocketAddress address, org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
-
getNumberOfPasswordPrompts
private int getNumberOfPasswordPrompts(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
-
setKeyCache
public void setKeyCache(KeyCache cache)
Set a cache for loaded keys. Newly discovered keys will be added when IdentityFile host entries from the ssh config file are used during session authentication.- Parameters:
cache- to use
-
setProxyDatabase
public void setProxyDatabase(ProxyDataFactory factory)
Sets aProxyDataFactoryfor connecting through proxies.- Parameters:
factory- to use, ornullif proxying is not desired or supported
-
getProxyDatabase
protected ProxyDataFactory getProxyDatabase()
Retrieves theProxyDataFactory.- Returns:
- the factory, or
nullif none is set
-
setCredentialsProvider
public void setCredentialsProvider(CredentialsProvider provider)
Sets theCredentialsProviderfor this client.- Parameters:
provider- to set
-
getCredentialsProvider
public CredentialsProvider getCredentialsProvider()
Retrieves theCredentialsProviderset for this client.- Returns:
- the provider, or
nullif none is set.
-
-