Class 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 Classes 
      Modifier and Type Class Description
      static class  JGitClientSession.ChainingAttributes
      An AttributeRepository that chains together two other attribute sources in a hierarchy.
      static class  JGitClientSession.SessionAttributes
      A JGitClientSession.ChainingAttributes repository that doubles as a PropertyResolver.
      • 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 extends Object>
      • 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

      • 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, encodeLock, firstKexPacketFollows, globalRequestSeqo, ignorePacketDataLength, ignorePacketsCount, ignorePacketsFrequency, ignorePacketsVariance, inBlocksCount, inBytesCount, inCipher, inCipherSize, inCompression, inMac, inMacResult, inMacSize, inPacketsCount, inSettings, kex, kexFutureHolder, kexInitializedFuture, kexLock, kexState, lastKeyTimeValue, maxRekeyBlocks, maxRekeyBytes, maxRekeyInterval, maxRekyPackets, negotiationResult, outBlocksCount, outBytesCount, outCipher, outCipherSize, outCompression, outMac, outMacSize, outPacketsCount, outSettings, pendingGlobalRequest, pendingPackets, random, requestLock, seqi, seqo, serverProposal, serverVersion, SESSION, sessionId, sessionListenerProxy, sessionListeners, tunnelListenerProxy, tunnelListeners, uncompressBuffer, unmodClientProposal, unmodNegotiationResult, unmodServerProposal
      • Fields inherited from class org.apache.sshd.common.session.helpers.SessionHelper

        authStart, idleStart, sessionLock
      • 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

      Constructors 
      Constructor Description
      JGitClientSession​(org.apache.sshd.client.ClientFactoryManager manager, org.apache.sshd.common.io.IoSession session)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected List<String> doReadIdentification​(org.apache.sshd.common.util.buffer.Buffer buffer, boolean server)
      Reads the RFC 4253, section 4.2 protocol version identification.
      <T> T getAttribute​(org.apache.sshd.common.AttributeRepository.AttributeKey<T> key)  
      CredentialsProvider getCredentialsProvider()
      Retrieves the CredentialsProvider set for this session.
      org.apache.sshd.client.config.hosts.HostConfigEntry getHostConfigEntry()
      Retrieves the HostConfigEntry this session was created for.
      org.apache.sshd.common.PropertyResolver getParentPropertyResolver()  
      void messageReceived​(org.apache.sshd.common.util.Readable buffer)
      As long as we're still setting up the proxy connection, diverts messages to the StatefulProxyConnector.
      List<String> modifyAlgorithmList​(List<String> defaultList, Set<String> allAvailable, String fromConfig, String overrideKey)
      Modifies a given algorithm list according to a list from the ssh config, including add ('+'), remove ('-') and reordering ('^') operators.
      protected String resolveAvailableSignaturesProposal​(org.apache.sshd.common.FactoryManager manager)  
      protected String resolveSessionKexProposal​(String hostKeyTypes)  
      protected org.apache.sshd.common.io.IoWriteFuture sendIdentification​(String ident, List<String> extraLines)  
      protected byte[] sendKexInit()  
      void setCredentialsProvider​(CredentialsProvider provider)
      Sets the CredentialsProvider for this session.
      void setHostConfigEntry​(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
      Sets the HostConfigEntry this session was created for.
      void setProxyHandler​(StatefulProxyConnector handler)
      Sets a StatefulProxyConnector to handle proxy connection protocols.
      • Methods inherited from class org.apache.sshd.client.session.ClientSessionImpl

        auth, exceptionCaught, getMetadataMap, getServices, getSessionState, handleDisconnect, 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, 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, doWritePacket, encode, encryptOutgoingBuffer, enqueuePendingPacket, 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, isRekeyBlocksCountExceeded, isRekeyDataSizeExceeded, isRekeyPacketCountsExceeded, isRekeyRequired, isRekeyTimeIntervalExceeded, negotiate, notImplemented, prepareBuffer, prepareNewKeys, preProcessEncodeBuffer, receiveKexInit, reExchangeKeys, refreshConfiguration, removeChannelListener, removePortForwardingEventListener, removeSessionListener, request, requestFailure, requestNewKeysExchange, requestSuccess, resolveAvailableSignaturesProposal, resolveIgnoreBufferDataLength, resolveOutputPacket, sendNewKeys, sendPendingPackets, setClientKexData, setInputEncoding, setNegotiationResult, setOutputEncoding, setServerKexData, signalRequestFailure, validateIncomingMac, validateKexState, validateTargetBuffer, 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, getLocalForwardsBindings, getProperties, getRemoteForwardsBindings, getReservedSessionMessagesHandler, getSessionDisconnectHandler, getStartedLocalPortForwards, getStartedRemotePortForwards, getTimeoutStatus, getUnknownChannelReferenceHandler, getUsername, handleDebug, handleDisconnect, handleIgnore, handleUnimplemented, invokeSessionSignaller, isAuthenticated, isLocalPortForwardingStartedForPort, isRemotePortForwardingStartedForPort, isServerSession, mergeProposals, removeAttribute, resetAuthTimeout, resetIdleTimeout, resizeKey, 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, writePacket
      • 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 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, 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, 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
    • Constructor Detail

      • JGitClientSession

        public JGitClientSession​(org.apache.sshd.client.ClientFactoryManager manager,
                                 org.apache.sshd.common.io.IoSession session)
                          throws Exception
        Parameters:
        manager -
        session -
        Throws:
        Exception
    • Method Detail

      • getHostConfigEntry

        public org.apache.sshd.client.config.hosts.HostConfigEntry getHostConfigEntry()
        Retrieves the HostConfigEntry this session was created for.
        Returns:
        the HostConfigEntry, or null if none set
      • setHostConfigEntry

        public void setHostConfigEntry​(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
        Sets the HostConfigEntry this session was created for.
        Parameters:
        hostConfig - the HostConfigEntry
      • sendIdentification

        protected org.apache.sshd.common.io.IoWriteFuture sendIdentification​(String ident,
                                                                             List<String> extraLines)
                                                                      throws Exception
        Overrides:
        sendIdentification in class org.apache.sshd.common.session.helpers.SessionHelper
        Throws:
        Exception
      • sendKexInit

        protected byte[] sendKexInit()
                              throws Exception
        Overrides:
        sendKexInit in class org.apache.sshd.common.session.helpers.AbstractSession
        Throws:
        Exception
      • messageReceived

        public void messageReceived​(org.apache.sshd.common.util.Readable buffer)
                             throws Exception
        As long as we're still setting up the proxy connection, diverts messages to the StatefulProxyConnector.
        Overrides:
        messageReceived in class org.apache.sshd.common.session.helpers.AbstractSession
        Throws:
        Exception
      • resolveAvailableSignaturesProposal

        protected String resolveAvailableSignaturesProposal​(org.apache.sshd.common.FactoryManager manager)
        Overrides:
        resolveAvailableSignaturesProposal in class org.apache.sshd.client.session.AbstractClientSession
      • resolveSessionKexProposal

        protected String resolveSessionKexProposal​(String hostKeyTypes)
                                            throws IOException
        Overrides:
        resolveSessionKexProposal in class org.apache.sshd.common.session.helpers.AbstractSession
        Throws:
        IOException
      • modifyAlgorithmList

        public List<String> modifyAlgorithmList​(List<String> defaultList,
                                                Set<String> allAvailable,
                                                String fromConfig,
                                                String overrideKey)
        Modifies a given algorithm list according to a list from the ssh config, including add ('+'), remove ('-') and reordering ('^') operators.
        Parameters:
        defaultList - to modify
        allAvailable - all available values
        fromConfig - telling how to modify the defaultList, must not be null or empty
        overrideKey - ssh config key; used for logging
        Returns:
        the modified list or null if overrideKey is not set
      • 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 class org.apache.sshd.common.session.helpers.SessionHelper
        Parameters:
        buffer - to read from
        server - whether we're an SSH server (should always be false)
        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:
        RFC 4253, section 4.2
      • getAttribute

        public <T> T getAttribute​(org.apache.sshd.common.AttributeRepository.AttributeKey<T> key)
        Specified by:
        getAttribute in interface org.apache.sshd.common.AttributeRepository
        Overrides:
        getAttribute in class org.apache.sshd.common.session.helpers.SessionHelper
      • getParentPropertyResolver

        public org.apache.sshd.common.PropertyResolver getParentPropertyResolver()
        Specified by:
        getParentPropertyResolver in interface org.apache.sshd.common.PropertyResolver
        Overrides:
        getParentPropertyResolver in class org.apache.sshd.common.session.helpers.SessionHelper