Interface SessionListener

All Superinterfaces:
EventListener, SshdEventListener
All Known Implementing Classes:
SessionTimeoutListener

public interface SessionListener extends SshdEventListener
Represents an interface receiving session events.
Author:
Apache MINA SSHD Project
  • Method Details

    • 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:
    • 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:
    • sessionPeerIdentificationReceived

      default void sessionPeerIdentificationReceived(Session session, String version, List<String> extraLines)
      The peer's identification version was received
      Parameters:
      session - The Session instance
      version - The retrieved identification version
      extraLines - Extra data preceding the identification
      See Also:
    • 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
    • sessionEvent

      default void sessionEvent(Session session, SessionListener.Event event)
      An event has been triggered
      Parameters:
      session - The referenced Session
      event - The generated SessionListener.Event
    • 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:
    • 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)