Package org.apache.sshd.common.session
Interface SessionContext
-
- All Superinterfaces:
AttributeRepository,AttributeStore,AutoCloseable,Channel,Closeable,Closeable,ConnectionEndpointsIndicator,PropertyResolver,SessionHeartbeatController,UsernameHolder
public interface SessionContext extends ConnectionEndpointsIndicator, UsernameHolder, SessionHeartbeatController, AttributeStore, Closeable
A "succinct" summary of the most important attributes of an SSH session- Author:
- Apache MINA SSHD Project
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.sshd.common.AttributeRepository
AttributeRepository.AttributeKey<T>
-
Nested classes/interfaces inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
SessionHeartbeatController.HeartbeatType
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_SSH_VERSION_PREFIXDefault prefix expected for the client / server identification stringstatic StringFALLBACK_SSH_VERSION_PREFIXBackward compatible special prefixstatic intMAX_VERSION_LINE_LENGTHMaximum number of characters for any single line sent as part of the initial handshake - according to RFC 4253 - section 4.2:-
Fields inherited from interface org.apache.sshd.common.PropertyResolver
EMPTY
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description CipherInformationgetCipherInformation(boolean incoming)Retrieves current cipher information - Note: may change if key re-exchange executedMap<KexProposalOption,String>getClientKexProposals()StringgetClientVersion()Retrieve the client version for this session.CompressionInformationgetCompressionInformation(boolean incoming)Retrieves current compression information - Note: may change if key re-exchange executedMap<KexProposalOption,String>getKexNegotiationResult()KexStategetKexState()MacInformationgetMacInformation(boolean incoming)Retrieves current MAC information - Note: may change if key re-exchange executedStringgetNegotiatedKexParameter(KexProposalOption paramType)Retrieve one of the negotiated values during the KEX stageMap<KexProposalOption,String>getServerKexProposals()StringgetServerVersion()Retrieve the server version for this session.byte[]getSessionId()booleanisAuthenticated()static booleanisDataIntegrityTransport(SessionContext session)static booleanisSecureSessionTransport(SessionContext session)booleanisServerSession()Quick indication if this is a server or client session (instead of having to askinstanceof).static booleanisValidSessionPayloadSize(long value)static booleanisValidVersionPrefix(String version)static longvalidateSessionPayloadSize(long value, String format)-
Methods inherited from interface org.apache.sshd.common.AttributeRepository
attributeKeys, getAttribute, getAttributesCount, resolveAttribute
-
Methods inherited from interface org.apache.sshd.common.AttributeStore
clearAttributes, computeAttributeIfAbsent, removeAttribute, setAttribute
-
Methods inherited from interface org.apache.sshd.common.Closeable
addCloseFutureListener, close, close, isClosed, isClosing, isOpen, removeCloseFutureListener
-
Methods inherited from interface org.apache.sshd.common.util.net.ConnectionEndpointsIndicator
getLocalAddress, getRemoteAddress
-
Methods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, getParentPropertyResolver, getProperties, getString, getStringProperty, isEmpty
-
Methods inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
disableSessionHeartbeat, getSessionHeartbeatInterval, getSessionHeartbeatType, setSessionHeartbeat, setSessionHeartbeat
-
Methods inherited from interface org.apache.sshd.common.auth.UsernameHolder
getUsername
-
-
-
-
Field Detail
-
DEFAULT_SSH_VERSION_PREFIX
static final String DEFAULT_SSH_VERSION_PREFIX
Default prefix expected for the client / server identification string- See Also:
- RFC 4253 - section 4.2, Constant Field Values
-
FALLBACK_SSH_VERSION_PREFIX
static final String FALLBACK_SSH_VERSION_PREFIX
Backward compatible special prefix- See Also:
- RFC 4253 - section 5, Constant Field Values
-
MAX_VERSION_LINE_LENGTH
static final int MAX_VERSION_LINE_LENGTH
Maximum number of characters for any single line sent as part of the initial handshake - according to RFC 4253 - section 4.2:The maximum length of the string is 255 characters, including the Carriage Return and Line Feed.- See Also:
- Constant Field Values
-
-
Method Detail
-
getSessionId
byte[] getSessionId()
- Returns:
- A clone of the established session identifier -
nullif not yet established
-
isServerSession
boolean isServerSession()
Quick indication if this is a server or client session (instead of having to askinstanceof).- Returns:
trueif this is a server session
-
getClientVersion
String getClientVersion()
Retrieve the client version for this session.- Returns:
- the client version - may be
null/empty if versions not yet exchanged
-
getClientKexProposals
Map<KexProposalOption,String> getClientKexProposals()
- Returns:
- An un-modifiable map of the latest KEX client proposal options May be empty if KEX not yet completed or re-keying in progress
- See Also:
getKexState()
-
getServerVersion
String getServerVersion()
Retrieve the server version for this session.- Returns:
- the server version - may be
null/empty if versions not yet exchanged
-
getServerKexProposals
Map<KexProposalOption,String> getServerKexProposals()
- Returns:
- An un-modifiable map of the latest KEX client proposal options. May be empty if KEX not yet completed or re-keying in progress
- See Also:
getKexState()
-
getKexState
KexState getKexState()
-
getKexNegotiationResult
Map<KexProposalOption,String> getKexNegotiationResult()
-
getNegotiatedKexParameter
String getNegotiatedKexParameter(KexProposalOption paramType)
Retrieve one of the negotiated values during the KEX stage- Parameters:
paramType- The requestKexProposalOptionvalue - ignored ifnull- Returns:
- The negotiated parameter value -
nullif invalid parameter or no negotiated value. - See Also:
getKexState()
-
getCipherInformation
CipherInformation getCipherInformation(boolean incoming)
Retrieves current cipher information - Note: may change if key re-exchange executed- Parameters:
incoming- Iftruethen the cipher for the incoming data, otherwise for the outgoing data- Returns:
- The
CipherInformation- ornullif not negotiated yet.
-
getCompressionInformation
CompressionInformation getCompressionInformation(boolean incoming)
Retrieves current compression information - Note: may change if key re-exchange executed- Parameters:
incoming- Iftruethen the compression for the incoming data, otherwise for the outgoing data- Returns:
- The
CompressionInformation- ornullif not negotiated yet.
-
getMacInformation
MacInformation getMacInformation(boolean incoming)
Retrieves current MAC information - Note: may change if key re-exchange executed- Parameters:
incoming- Iftruethen the MAC for the incoming data, otherwise for the outgoing data- Returns:
- The
MacInformation- ornullif not negotiated yet.
-
isAuthenticated
boolean isAuthenticated()
- Returns:
trueif session has successfully completed the authentication phase
-
isValidVersionPrefix
static boolean isValidVersionPrefix(String version)
- Parameters:
version- The reported client/server version- Returns:
trueif version not empty and starts with either "SSH-2.0-" or "SSH-1.99-"
-
isSecureSessionTransport
static boolean isSecureSessionTransport(SessionContext session)
- Parameters:
session- TheSessionContextto be examined- Returns:
trueif the context is notnulland the ciphers have been established to anything other than "none".- See Also:
getNegotiatedKexParameter,CIPHER_PROPOSALS
-
isDataIntegrityTransport
static boolean isDataIntegrityTransport(SessionContext session)
- Parameters:
session- TheSessionContextto be examined- Returns:
trueif the context is notnulland the MAC(s) used to verify packet integrity have been established.- See Also:
getNegotiatedKexParameter,MAC_PROPOSALS
-
isValidSessionPayloadSize
static boolean isValidSessionPayloadSize(long value)
-
validateSessionPayloadSize
static long validateSessionPayloadSize(long value, String format)
-
-