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 Classes
    Modifier and Type
    Class
    Description
    static class 
    An AttributeRepository that chains together two other attribute sources in a hierarchy.
    static class 
    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
    Modifier and Type
    Field
    Description
     
    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 static final org.apache.sshd.common.AttributeRepository.AttributeKey<Boolean>
     
     

    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

    Modifier and Type
    Method
    Description
    private List<String>
     
    protected List<String>
    doReadIdentification(org.apache.sshd.common.util.buffer.Buffer buffer, boolean server)
    Reads the RFC 4253, section 4.2 protocol version identification.
    private static String
     
    private List<String>
    filteredList(Set<String> known, String key, String values)
     
    (package private) Set<String>
     
    <T> T
    getAttribute(org.apache.sshd.common.AttributeRepository.AttributeKey<T> key)
     
    Retrieves the CredentialsProvider set for this session.
    org.apache.sshd.client.config.hosts.HostConfigEntry
    Retrieves the HostConfigEntry 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 the StatefulProxyConnector.
    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.
    private void
    removeFromList(Set<String> current, String key, String patterns)
     
    protected String
    resolveAvailableSignaturesProposal(org.apache.sshd.common.FactoryManager manager)
     
    protected String
     
    protected org.apache.sshd.common.io.IoWriteFuture
    sendIdentification(String ident, List<String> extraLines)
     
    protected byte[]
     
    void
    Sets the CredentialsProvider for this session.
    void
    setHostConfigEntry(org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig)
    Sets the HostConfigEntry this session was created for.
    private void
    setNewFactories(Collection<String> defaultFactories, Collection<String> finalFactories)
     
    void
    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 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, 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
  • Field Details

    • DEFAULT_MAX_IDENTIFICATION_SIZE

      private static final int DEFAULT_MAX_IDENTIFICATION_SIZE
      Default setting for the maximum number of bytes to read in the initial protocol version exchange. 64kb is what OpenSSH < 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 in CoreModuleProperties.MAX_IDENTIFICATION_SIZE is 16kb.
      See Also:
    • INITIAL_KEX_DONE

      private static final org.apache.sshd.common.AttributeRepository.AttributeKey<Boolean> INITIAL_KEX_DONE
    • hostConfig

      private org.apache.sshd.client.config.hosts.HostConfigEntry hostConfig
    • credentialsProvider

      private CredentialsProvider credentialsProvider
    • proxyHandler

      private volatile StatefulProxyConnector proxyHandler
  • Constructor Details

    • JGitClientSession

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

    • 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
    • setCredentialsProvider

      public void setCredentialsProvider(CredentialsProvider provider)
      Sets the CredentialsProvider for this session.
      Parameters:
      provider - to set
    • getCredentialsProvider

      public CredentialsProvider getCredentialsProvider()
      Retrieves the CredentialsProvider set for this session.
      Returns:
      the provider, or null if none is set.
    • setProxyHandler

      public void setProxyHandler(StatefulProxyConnector handler)
      Sets a StatefulProxyConnector 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 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
    • getAllAvailableSignatureAlgorithms

      Set<String> getAllAvailableSignatureAlgorithms()
    • setNewFactories

      private void setNewFactories(Collection<String> defaultFactories, Collection<String> finalFactories)
    • resolveAvailableSignaturesProposal

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

      private List<String> determineKexProposal()
    • 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
    • removeFromList

      private void removeFromList(Set<String> current, String key, String patterns)
    • filteredList

      private List<String> filteredList(Set<String> known, String key, String values)
    • 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:
    • escapeControls

      private static String escapeControls(String s)
    • 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