Class JGitClientSession
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.session.helpers.SessionHelper
org.apache.sshd.common.session.helpers.AbstractSession
org.apache.sshd.client.session.AbstractClientSession
org.apache.sshd.client.session.ClientSessionImpl
org.eclipse.jgit.internal.transport.sshd.JGitClientSession
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Channel
,org.apache.sshd.client.ClientAuthenticationManager
,org.apache.sshd.client.session.ClientProxyConnectorHolder
,org.apache.sshd.client.session.ClientSession
,org.apache.sshd.common.AttributeRepository
,org.apache.sshd.common.AttributeStore
,org.apache.sshd.common.auth.MutableUserHolder
,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.auth.UsernameHolder
,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.FactoryManagerHolder
,org.apache.sshd.common.forward.PortForwardingEventListenerManager
,org.apache.sshd.common.forward.PortForwardingInformationProvider
,org.apache.sshd.common.forward.PortForwardingManager
,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.Session
,org.apache.sshd.common.session.SessionContext
,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
,org.apache.sshd.common.util.net.ConnectionEndpointsIndicator
public class JGitClientSession
extends org.apache.sshd.client.session.ClientSessionImpl
A
ClientSession
that can
be associated with the HostConfigEntry
the session was created for.
The JGitSshClient
creates such sessions and sets this association.
Also provides for associating a JGit CredentialsProvider
with a
session.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
AnAttributeRepository
that chains together two other attribute sources in a hierarchy.static class
AJGitClientSession.ChainingAttributes
repository that doubles as aPropertyResolver
.Nested classes/interfaces inherited from class org.apache.sshd.common.session.helpers.AbstractSession
org.apache.sshd.common.session.helpers.AbstractSession.MessageCodingSettings
Nested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
org.apache.sshd.common.util.closeable.AbstractCloseable.State
Nested classes/interfaces inherited from interface org.apache.sshd.common.AttributeRepository
org.apache.sshd.common.AttributeRepository.AttributeKey<T>
Nested classes/interfaces inherited from interface org.apache.sshd.client.session.ClientSession
org.apache.sshd.client.session.ClientSession.ClientSessionEvent
Nested classes/interfaces inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
org.apache.sshd.common.session.SessionHeartbeatController.HeartbeatType
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CredentialsProvider
private static final int
Default setting for the maximum number of bytes to read in the initial protocol version exchange.private org.apache.sshd.client.config.hosts.HostConfigEntry
private StatefulProxyConnector
Fields inherited from class org.apache.sshd.client.session.AbstractClientSession
sendImmediateClientIdentification, sendImmediateKexInit
Fields inherited from class org.apache.sshd.common.session.helpers.AbstractSession
channelListenerProxy, channelListeners, clientProposal, clientVersion, currentService, decodeLock, decoderBuffer, decoderLength, decoderState, discarding, encodeLock, firstKexPacketFollows, ignorePacketDataLength, ignorePacketsCount, ignorePacketsFrequency, ignorePacketsVariance, inBlocksCount, inBytesCount, inCipher, inCipherSize, inCompression, initialKexDone, initialKexInitSequenceNumber, inMac, inMacResult, inMacSize, inPacketsCount, inSettings, kex, kexFutureHolder, kexHandler, kexInitializedFuture, kexState, lastKeyTimeValue, maxRekeyBlocks, maxRekeyBytes, maxRekeyInterval, maxRekyPackets, negotiationResult, outBlocksCount, outBytesCount, outCipher, outCipherSize, outCompression, outMac, outMacSize, outPacketsCount, outSettings, random, requestLock, seqi, seqo, serverProposal, serverVersion, SESSION, sessionId, sessionListenerProxy, sessionListeners, strictKex, tunnelListenerProxy, tunnelListeners, uncompressBuffer, unmodClientProposal, unmodNegotiationResult, unmodServerProposal
Fields inherited from class org.apache.sshd.common.session.helpers.SessionHelper
authStart, idleStart, initialKexProposal
Fields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, state
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
Fields inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolver
NONE
Fields inherited from interface org.apache.sshd.client.session.ClientSession
REMOTE_COMMAND_WAIT_EVENTS
Fields inherited from interface org.apache.sshd.common.PropertyResolver
EMPTY
Fields inherited from interface org.apache.sshd.common.session.SessionContext
DEFAULT_SSH_VERSION_PREFIX, FALLBACK_SSH_VERSION_PREFIX, MAX_VERSION_LINE_LENGTH
-
Constructor Summary
ConstructorsConstructorDescriptionJGitClientSession
(org.apache.sshd.client.ClientFactoryManager manager, org.apache.sshd.common.io.IoSession session) -
Method Summary
Modifier and TypeMethodDescriptiondoReadIdentification
(org.apache.sshd.common.util.buffer.Buffer buffer, boolean server) Reads the RFC 4253, section 4.2 protocol version identification.private static String
filteredList
(Set<String> known, String values) <T> T
getAttribute
(org.apache.sshd.common.AttributeRepository.AttributeKey<T> key) Retrieves theCredentialsProvider
set for this session.org.apache.sshd.client.config.hosts.HostConfigEntry
Retrieves theHostConfigEntry
this session was created for.org.apache.sshd.common.PropertyResolver
void
messageReceived
(org.apache.sshd.common.util.Readable buffer) As long as we're still setting up the proxy connection, diverts messages to theStatefulProxyConnector
.private void
removeFromList
(Set<String> current, String key, String patterns) protected String
resolveAvailableSignaturesProposal
(org.apache.sshd.common.FactoryManager manager) protected org.apache.sshd.common.io.IoWriteFuture
sendIdentification
(String ident, List<String> extraLines) protected byte[]
void
setCredentialsProvider
(CredentialsProvider provider) Sets theCredentialsProvider
for this session.void
setHostConfigEntry
(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig) Sets theHostConfigEntry
this session was created for.void
setProxyHandler
(StatefulProxyConnector handler) Sets aStatefulProxyConnector
to handle proxy connection protocols.Methods inherited from class org.apache.sshd.client.session.ClientSessionImpl
auth, exceptionCaught, getMetadataMap, getServices, getSessionState, handleDisconnect, initializeCurrentService, nextServiceName, preClose, sendInitialServiceRequest, signalAuthFailure, signalSessionEvent, switchToNextService, updateCurrentSessionState, waitFor
Methods inherited from class org.apache.sshd.client.session.AbstractClientSession
addPasswordIdentity, addPublicKeyIdentity, checkKeys, createChannel, createChannel, createDirectTcpipChannel, createExecChannel, createExecChannel, createShellChannel, createSubsystemChannel, getClientProxyConnector, getConnectAddress, getConnectionContext, getConnectionService, getFactoryManager, getForwarder, getHostBasedAuthenticationReporter, getKeyIdentityProvider, getPasswordAuthenticationReporter, getPasswordIdentityProvider, getPublicKeyAuthenticationReporter, getRegisteredIdentities, getServerKey, getServerKeyVerifier, getUserAuthFactories, getUserAuthService, getUserInteraction, initializeKeyExchangePhase, initializeProxyConnector, readIdentification, receiveKexInit, receiveKexInit, removePasswordIdentity, removePublicKeyIdentity, sendClientIdentification, sendKexInit, setClientProxyConnector, setConnectAddress, setHostBasedAuthenticationReporter, setKexSeed, setKeyIdentityProvider, setPasswordAuthenticationReporter, setPasswordIdentityProvider, setPublicKeyAuthenticationReporter, setServerKey, setServerKeyVerifier, setUserAuthFactories, setUserInteraction, signalExtraServerVersionInfo, startDynamicPortForwarding, startLocalPortForwarding, startRemotePortForwarding, startService, stopDynamicPortForwarding, stopLocalPortForwarding, stopRemotePortForwarding, switchToNoneCipher
Methods inherited from class org.apache.sshd.common.session.helpers.AbstractSession
addChannelListener, addPortForwardingEventListener, addSessionListener, aeadOutgoingBuffer, appendOutgoingMac, attachSession, calculatePadLength, checkRekey, comparePreferredKexProposalOption, createBuffer, decode, determineRekeyBlockLimit, doHandleMessage, doInvokeUnimplementedMessageHandler, doKexNegotiation, doStrictKexProposal, doWritePacket, encode, encryptOutgoingBuffer, failStrictKex, getChannelListenerProxy, getCipherInformation, getClientKexData, getClientKexProposals, getClientVersion, getCompressionInformation, getInnerCloseable, getKex, getKexNegotiationResult, getKexState, getMacInformation, getNegotiatedKexParameter, getPortForwardingEventListenerProxy, getServerKexData, getServerKexProposals, getServerVersion, getService, getSession, getSession, getSessionId, getSessionListenerProxy, handleFirstKexPacketFollows, handleKexExtension, handleKexInit, handleKexMessage, handleMessage, handleNewCompression, handleNewKeys, handleServiceAccept, handleServiceAccept, handleServiceRequest, handleServiceRequest, initializeKeyExchangeMessageHandler, isRekeyBlocksCountExceeded, isRekeyDataSizeExceeded, isRekeyPacketCountsExceeded, isRekeyRequired, isRekeyTimeIntervalExceeded, negotiate, notImplemented, performKexNegotiation, prepareBuffer, prepareNewKeys, preProcessEncodeBuffer, receiveKexInit, reExchangeKeys, refreshConfiguration, removeChannelListener, removePortForwardingEventListener, removeSessionListener, removeValue, request, request, requestFailure, requestNewKeysExchange, requestSuccess, resolveIgnoreBufferDataLength, resolveOutputPacket, resolveSessionKexProposal, sendNewKeys, setClientKexData, setInputEncoding, setNegotiationResult, setOutputEncoding, setServerKexData, validateIncomingMac, validateKexState, validateServiceKexState, validateTargetBuffer, writePacket, writePacket
Methods inherited from class org.apache.sshd.common.session.helpers.SessionHelper
attributeKeys, calculateNextIgnorePacketCount, checkAuthenticationTimeout, checkForTimeouts, checkIdleTimeout, clearAttributes, computeAttributeIfAbsent, createProposal, disconnect, doInvokeDebugMessageHandler, doInvokeIgnoreMessageHandler, getAttributesCount, getAuthTimeout, getAuthTimeoutStart, getBoundLocalPortForwards, getBoundRemotePortForward, getChannelStreamWriterResolver, getIdleTimeout, getIdleTimeoutStart, getIoSession, getKexProposal, getLocalForwardsBindings, getProperties, getRemoteForwardsBindings, getReservedSessionMessagesHandler, getSessionDisconnectHandler, getStartedLocalPortForwards, getStartedRemotePortForwards, getTimeoutStatus, getUnknownChannelReferenceHandler, getUsername, handleDebug, handleDisconnect, handleIgnore, handleUnimplemented, invokeSessionSignaller, isAuthenticated, isLocalPortForwardingStartedForPort, isRemotePortForwardingStartedForPort, isServerSession, mergeProposals, removeAttribute, resetAuthTimeout, resetIdleTimeout, resizeKey, resolveAvailableSignaturesProposal, resolveChannelStreamWriterResolver, resolveIdentificationString, resolvePeerAddress, resolveReservedSessionMessagesHandler, resolveUnknownChannelReferenceHandler, sendDebugMessage, sendIgnoreMessage, sendNotImplemented, setAttribute, setAuthenticated, setChannelStreamWriterResolver, setReservedSessionMessagesHandler, setSessionDisconnectHandler, setUnknownChannelReferenceHandler, setUsername, signalDisconnect, signalDisconnect, signalExceptionCaught, signalExceptionCaught, signalNegotiationEnd, signalNegotiationEnd, signalNegotiationOptionsCreated, signalNegotiationOptionsCreated, signalNegotiationStart, signalNegotiationStart, signalPeerIdentificationReceived, signalPeerIdentificationReceived, signalReadPeerIdentificationLine, signalReadPeerIdentificationLine, signalSendIdentification, signalSendIdentification, signalSessionClosed, signalSessionClosed, signalSessionCreated, signalSessionCreated, signalSessionEstablished, signalSessionEstablished, signalSessionEvent, toString
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, 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, 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.ClientSession
createDynamicPortForwardingTracker, createExecChannel, createExecChannel, createLocalPortForwardingTracker, createLocalPortForwardingTracker, createRemotePortForwardingTracker, createShellChannel, executeRemoteCommand, executeRemoteCommand, executeRemoteCommand, waitFor
Methods inherited from interface org.apache.sshd.common.Closeable
addCloseFutureListener, close, close, isClosed, isClosing, isOpen, removeCloseFutureListener
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.auth.MutableUserHolder
setUsername
Methods inherited from interface org.apache.sshd.common.forward.PortForwardingEventListenerManager
addPortForwardingEventListener, getPortForwardingEventListenerProxy, removePortForwardingEventListener
Methods inherited from interface org.apache.sshd.common.forward.PortForwardingInformationProvider
getBoundLocalPortForwards, getBoundRemotePortForward, getLocalForwardsBindings, getRemoteForwardsBindings, getStartedLocalPortForwards, getStartedRemotePortForwards, isLocalPortForwardingStartedForPort, isRemotePortForwardingStartedForPort
Methods inherited from interface org.apache.sshd.common.forward.PortForwardingManager
startLocalPortForwarding
Methods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, 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.Session
createBuffer, createBuffer, disconnect, getAuthTimeout, getAuthTimeoutStart, getIdleTimeout, getIdleTimeoutStart, getIoSession, getKex, getLocalAddress, getRemoteAddress, getService, getTimeoutStatus, prepareBuffer, reExchangeKeys, request, request, request, request, resetAuthTimeout, resetIdleTimeout, resolveAttribute, sendDebugMessage, sendIgnoreMessage, setAuthenticated, writePacket, writePacket, writePacket, writePacket
Methods inherited from interface org.apache.sshd.common.session.SessionContext
getCipherInformation, getClientKexProposals, getClientVersion, getCompressionInformation, getKexNegotiationResult, getKexState, getMacInformation, getNegotiatedKexParameter, getServerKexProposals, getServerVersion, getSessionId, isAuthenticated, isServerSession
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
Methods inherited from interface org.apache.sshd.common.session.UnknownChannelReferenceHandlerManager
getUnknownChannelReferenceHandler, resolveUnknownChannelReferenceHandler, setUnknownChannelReferenceHandler
Methods inherited from interface org.apache.sshd.common.auth.UserAuthFactoriesManager
getUserAuthFactoriesNameList, getUserAuthFactoriesNames, setUserAuthFactoriesNameList, setUserAuthFactoriesNames
Methods inherited from interface org.apache.sshd.common.auth.UsernameHolder
getUsername
-
Field Details
-
DEFAULT_MAX_IDENTIFICATION_SIZE
private static final int DEFAULT_MAX_IDENTIFICATION_SIZEDefault setting for the maximum number of bytes to read in the initial protocol version exchange. 64kb is what OpenSSH invalid input: '<' 8.0 read; OpenSSH 8.0 changed it to 8Mb, but that seems excessive for the purpose stated in RFC 4253. The Apache MINA sshd default inCoreModuleProperties.MAX_IDENTIFICATION_SIZE
is 16kb.- See Also:
-
hostConfig
private org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig -
credentialsProvider
-
proxyHandler
-
-
Constructor Details
-
Method Details
-
getHostConfigEntry
public org.apache.sshd.client.config.hosts.HostConfigEntry getHostConfigEntry()Retrieves theHostConfigEntry
this session was created for.- Returns:
- the
HostConfigEntry
, ornull
if none set
-
setHostConfigEntry
public void setHostConfigEntry(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig) Sets theHostConfigEntry
this session was created for.- Parameters:
hostConfig
- theHostConfigEntry
-
setCredentialsProvider
Sets theCredentialsProvider
for this session.- Parameters:
provider
- to set
-
getCredentialsProvider
Retrieves theCredentialsProvider
set for this session.- Returns:
- the provider, or
null
if none is set.
-
setProxyHandler
Sets aStatefulProxyConnector
to handle proxy connection protocols.- Parameters:
handler
- to set
-
sendIdentification
protected org.apache.sshd.common.io.IoWriteFuture sendIdentification(String ident, List<String> extraLines) throws Exception - Overrides:
sendIdentification
in classorg.apache.sshd.common.session.helpers.SessionHelper
- Throws:
Exception
-
sendKexInit
- Overrides:
sendKexInit
in classorg.apache.sshd.common.session.helpers.AbstractSession
- Throws:
Exception
-
messageReceived
As long as we're still setting up the proxy connection, diverts messages to theStatefulProxyConnector
.- Overrides:
messageReceived
in classorg.apache.sshd.common.session.helpers.AbstractSession
- Throws:
Exception
-
resolveAvailableSignaturesProposal
- Overrides:
resolveAvailableSignaturesProposal
in classorg.apache.sshd.client.session.AbstractClientSession
-
removeFromList
-
filteredList
-
doReadIdentification
protected List<String> doReadIdentification(org.apache.sshd.common.util.buffer.Buffer buffer, boolean server) throws StreamCorruptedException Reads the RFC 4253, section 4.2 protocol version identification. The Apache MINA sshd default implementation checks for NUL bytes also in any preceding lines, whereas RFC 4253 requires such a check only for the actual identification string starting with "SSH-". Likewise, the 255 character limit exists only for the identification string, not for the preceding lines. CR-LF handling is also relaxed.- Overrides:
doReadIdentification
in classorg.apache.sshd.common.session.helpers.SessionHelper
- Parameters:
buffer
- to read fromserver
- whether we're an SSH server (should always befalse
)- Returns:
- the lines read, with the server identification line last, or
null
if no identification line was found and more bytes are needed - Throws:
StreamCorruptedException
- if the identification is malformed- See Also:
-
escapeControls
-
getAttribute
public <T> T getAttribute(org.apache.sshd.common.AttributeRepository.AttributeKey<T> key) - Specified by:
getAttribute
in interfaceorg.apache.sshd.common.AttributeRepository
- Overrides:
getAttribute
in classorg.apache.sshd.common.session.helpers.SessionHelper
-
getParentPropertyResolver
public org.apache.sshd.common.PropertyResolver getParentPropertyResolver()- Specified by:
getParentPropertyResolver
in interfaceorg.apache.sshd.common.PropertyResolver
- Overrides:
getParentPropertyResolver
in classorg.apache.sshd.common.session.helpers.SessionHelper
-