Interface ReservedSessionMessagesHandler

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

public interface ReservedSessionMessagesHandler extends SshdEventListener
Provides a way to listen and handle the SSH_MSG_IGNORE and SSH_MSG_DEBUG messages that are received by a session, as well as proprietary and/or extension messages and behavior.
Author:
Apache MINA SSHD Project
  • Method Details

    • sendIdentification

      default IoWriteFuture sendIdentification(Session session, String version, List<String> extraLines) throws Exception
      Send the initial version exchange identification in and independent manner
      Parameters:
      session - The Session through which the version is exchange is being managed
      version - The version line that was resolved - Note: since this string is part of the KEX and is cached in the calling session, any changes to it require updating the session's cached value.
      extraLines - Extra lines to be sent - valid only for server sessions. Note:/B> the handler may modify these lines and return null thus signaling the session to proceed with sending the identification
      Returns:
      A IoWriteFuture that can be used to wait for the data to be sent successfully. If null then the session will send the identification, otherwise it is assumed that the handler has sent it.
      Throws:
      Exception - if failed to handle the callback
      See Also:
    • sendKexInitRequest

      default IoWriteFuture sendKexInitRequest(Session session, Map<KexProposalOption,String> proposal, Buffer packet) throws Exception
      Invoked before sending the SSH_MSG_KEXINIT packet
      Parameters:
      session - The Session through which the key exchange is being managed
      proposal - The KEX proposal that was used to build the packet
      packet - The packet containing the fully encoded message - Caveat: this packet later serves as part of the key generation, so care must be taken if manipulating it.
      Returns:
      A non-null IoWriteFuture to signal that handler took care of the KEX packet delivery.
      Throws:
      Exception - if failed to handle the callback
    • handleIgnoreMessage

      default void handleIgnoreMessage(Session session, Buffer buffer) throws Exception
      Invoked when an SSH_MSG_IGNORE packet is received
      Parameters:
      session - The Session through which the message was received
      buffer - The Buffer containing the data
      Throws:
      Exception - If failed to handle the message
      See Also:
    • handleDebugMessage

      default void handleDebugMessage(Session session, Buffer buffer) throws Exception
      Invoked when an SSH_MSG_DEBUG packet is received
      Parameters:
      session - The Session through which the message was received
      buffer - The Buffer containing the data
      Throws:
      Exception - If failed to handle the message
      See Also:
    • handleUnimplementedMessage

      default boolean handleUnimplementedMessage(Session session, int cmd, Buffer buffer) throws Exception
      Invoked when a packet with an un-implemented message is received - including SSH_MSG_UNIMPLEMENTED itself
      Parameters:
      session - The Session through which the message was received
      cmd - The received (un-implemented) command
      buffer - The Buffer containing the data - positioned just beyond the command
      Returns:
      true if message handled internally, false if should return a SSH_MSG_UNIMPLEMENTED reply (default behavior)
      Throws:
      Exception - If failed to handle the message
      See Also:
    • sendReservedHeartbeat

      default boolean sendReservedHeartbeat(ConnectionService service) throws Exception
      Invoked if the user configured usage of a proprietary heartbeat mechanism. Note: by default throws UnsupportedOperationException so users who configure a proprietary heartbeat mechanism option must provide an implementation for this method.
      Parameters:
      service - The ConnectionService through which the heartbeat is being executed.
      Returns:
      true whether heartbeat actually sent - Note: used mainly for debugging purposes.
      Throws:
      Exception - If failed to send the heartbeat - Note: causes associated session termination.