Interface SessionListener

    • Method Detail

      • sessionEstablished

        default void sessionEstablished​(Session session)
        An initial session connection has been established - Caveat emptor: the main difference between this callback and sessionCreated(Session) is that when this callback is called, the session is not yet fully initialized so not all API(s) will respond as expected. The main purpose of this callback is to allow the user to customize some session properties based on the peer's address and/or any provided connection context.
        Parameters:
        session - The established Session
      • sessionCreated

        default void sessionCreated​(Session session)
        A new session just been created
        Parameters:
        session - The created Session
      • sessionPeerIdentificationSend

        default void sessionPeerIdentificationSend​(Session session,
                                                   String version,
                                                   List<String> extraLines)
        About to send identification to peer
        Parameters:
        session - The Session instance
        version - The resolved identification version
        extraLines - Extra data preceding the identification to be sent. Note: the list is modifiable only if this is a server session. The user may modify it based on the peer.
        See Also:
        RFC 4253 - section 4.2 - Protocol Version Exchange
      • sessionPeerIdentificationLine

        default void sessionPeerIdentificationLine​(Session session,
                                                   String line,
                                                   List<String> extraLines)
        Successfully read a line as part of the initial peer identification
        Parameters:
        session - The Session instance
        line - The data that was read so far - Note: might not be a full line if more packets are required for full identification data. Furthermore, it may be repeated data due to packets segmentation and re-assembly mechanism
        extraLines - Previous lines that were before this one - Note: it may be repeated data due to packets segmentation and re-assembly mechanism
        See Also:
        RFC 4253 - section 4.2 - Protocol Version Exchange
      • sessionNegotiationOptionsCreated

        default void sessionNegotiationOptionsCreated​(Session session,
                                                      Map<KexProposalOption,​String> proposal)
        Parameters:
        session - The referenced Session
        proposal - The proposals that will be sent to the peer - Caveat emptor: the proposal is modifiable i.e., the handler can modify it before being sent
      • sessionNegotiationStart

        default void sessionNegotiationStart​(Session session,
                                             Map<KexProposalOption,​String> clientProposal,
                                             Map<KexProposalOption,​String> serverProposal)
        Signals the start of the negotiation options handling
        Parameters:
        session - The referenced Session
        clientProposal - The client proposal options (un-modifiable)
        serverProposal - The server proposal options (un-modifiable)
      • sessionNegotiationEnd

        default void sessionNegotiationEnd​(Session session,
                                           Map<KexProposalOption,​String> clientProposal,
                                           Map<KexProposalOption,​String> serverProposal,
                                           Map<KexProposalOption,​String> negotiatedOptions,
                                           Throwable reason)
        Signals the end of the negotiation options handling
        Parameters:
        session - The referenced Session
        clientProposal - The client proposal options (un-modifiable)
        serverProposal - The server proposal options (un-modifiable)
        negotiatedOptions - The successfully negotiated options so far - even if exception occurred (un-modifiable)
        reason - Negotiation end reason - null if successful
      • sessionException

        default void sessionException​(Session session,
                                      Throwable t)
        An exception was caught and the session will be closed (if not already so). Note: the code makes no guarantee that at this stage sessionClosed(Session) will be called or perhaps has already been called
        Parameters:
        session - The referenced Session
        t - The caught exception
      • sessionDisconnect

        default void sessionDisconnect​(Session session,
                                       int reason,
                                       String msg,
                                       String language,
                                       boolean initiator)
        Invoked when SSH_MSG_DISCONNECT message was sent/received
        Parameters:
        session - The referenced Session
        reason - The signaled reason code
        msg - The provided description message (may be empty)
        language - The language tag indicator (may be empty)
        initiator - Whether the session is the sender or recipient of the message
        See Also:
        RFC 4253 - section 11.1
      • sessionClosed

        default void sessionClosed​(Session session)
        A session has been closed
        Parameters:
        session - The closed Session
      • validateListener

        static <L extends SessionListener> L validateListener​(L listener)