Package org.apache.sshd.common.session
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
SessionListener.Event
-
Method Summary
All Methods Static Methods Instance Methods Default Methods Modifier and Type Method Description default void
sessionClosed(Session session)
A session has been closeddefault void
sessionCreated(Session session)
A new session just been createddefault void
sessionDisconnect(Session session, int reason, String msg, String language, boolean initiator)
Invoked whenSSH_MSG_DISCONNECT
message was sent/receiveddefault void
sessionEstablished(Session session)
An initial session connection has been established - Caveat emptor: the main difference between this callback andsessionCreated(Session)
is that when this callback is called, the session is not yet fully initialized so not all API(s) will respond as expected.default void
sessionEvent(Session session, SessionListener.Event event)
An event has been triggereddefault void
sessionException(Session session, Throwable t)
An exception was caught and the session will be closed (if not already so).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 handlingdefault void
sessionNegotiationOptionsCreated(Session session, Map<KexProposalOption,String> proposal)
default void
sessionNegotiationStart(Session session, Map<KexProposalOption,String> clientProposal, Map<KexProposalOption,String> serverProposal)
Signals the start of the negotiation options handlingdefault void
sessionPeerIdentificationLine(Session session, String line, List<String> extraLines)
Successfully read a line as part of the initial peer identificationdefault void
sessionPeerIdentificationReceived(Session session, String version, List<String> extraLines)
The peer's identification version was receiveddefault void
sessionPeerIdentificationSend(Session session, String version, List<String> extraLines)
About to send identification to peerstatic <L extends SessionListener>
LvalidateListener(L listener)
-
-
-
Method Detail
-
sessionEstablished
default void sessionEstablished(Session session)
An initial session connection has been established - Caveat emptor: the main difference between this callback andsessionCreated(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 establishedSession
-
sessionCreated
default void sessionCreated(Session session)
A new session just been created- Parameters:
session
- The createdSession
-
sessionPeerIdentificationSend
default void sessionPeerIdentificationSend(Session session, String version, List<String> extraLines)
About to send identification to peer- Parameters:
session
- TheSession
instanceversion
- The resolved identification versionextraLines
- 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
- TheSession
instanceline
- 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 mechanismextraLines
- 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
-
sessionPeerIdentificationReceived
default void sessionPeerIdentificationReceived(Session session, String version, List<String> extraLines)
The peer's identification version was received- Parameters:
session
- TheSession
instanceversion
- The retrieved identification versionextraLines
- Extra data preceding the identification- See Also:
- RFC 4253 - section 4.2 - Protocol Version Exchange
-
sessionNegotiationOptionsCreated
default void sessionNegotiationOptionsCreated(Session session, Map<KexProposalOption,String> proposal)
- Parameters:
session
- The referencedSession
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 referencedSession
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 referencedSession
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 referencedSession
event
- The generatedSessionListener.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 stagesessionClosed(Session)
will be called or perhaps has already been called- Parameters:
session
- The referencedSession
t
- The caught exception
-
sessionDisconnect
default void sessionDisconnect(Session session, int reason, String msg, String language, boolean initiator)
Invoked whenSSH_MSG_DISCONNECT
message was sent/received- Parameters:
session
- The referencedSession
reason
- The signaled reason codemsg
- 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 closedSession
-
validateListener
static <L extends SessionListener> L validateListener(L listener)
-
-