public interface Session extends KexFactoryManager, SessionListenerManager, ReservedSessionMessagesManager, ChannelListenerManager, PortForwardingEventListenerManager, FactoryManagerHolder, PropertyResolver, AttributeStore, Closeable, MutableUserHolder
null/empty if the session is not yet authenticated| Modifier and Type | Interface and Description |
|---|---|
static class |
Session.TimeoutStatus
Timeout status.
|
AttributeStore.AttributeKey<T>| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_SSH_VERSION_PREFIX
Default prefix expected for the client / server identification string
|
static String |
FALLBACK_SSH_VERSION_PREFIX
Backward compatible special prefix
|
static 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. |
EMPTYCLOSE_WAIT_TIMEOUT, DEFAULT_CLOSE_WAIT_TIMEOUT| Modifier and Type | Method and Description |
|---|---|
Buffer |
createBuffer(byte cmd)
Create a new buffer for the specified SSH packet and reserve the needed space
(5 bytes) for the packet header.
|
Buffer |
createBuffer(byte cmd,
int estimatedSize)
Create a new buffer for the specified SSH packet and reserve the needed space
(5 bytes) for the packet header.
|
void |
disconnect(int reason,
String msg)
Send a disconnect packet with the given reason and message.
|
void |
exceptionCaught(Throwable t)
Handle any exceptions that occurred on this session.
|
long |
getAuthTimeout() |
CipherInformation |
getCipherInformation(boolean incoming)
Retrieves current cipher information - Note: may change if
key re-exchange executed
|
String |
getClientVersion()
Retrieve the client version for this session.
|
CompressionInformation |
getCompressionInformation(boolean incoming)
Retrieves current compression information - Note: may change if
key re-exchange executed
|
long |
getIdleTimeout() |
IoSession |
getIoSession() |
KeyExchange |
getKex() |
MacInformation |
getMacInformation(boolean incoming)
Retrieves current MAC information - Note: may change if
key re-exchange executed
|
String |
getNegotiatedKexParameter(KexProposalOption paramType)
Retrieve one of the negotiated values during the KEX stage
|
String |
getServerVersion()
Retrieve the server version for this session.
|
<T extends Service> |
getService(Class<T> clazz)
Get the service of the specified type.
|
byte[] |
getSessionId() |
Session.TimeoutStatus |
getTimeoutStatus()
Check if timeout has occurred.
|
boolean |
isAuthenticated() |
static boolean |
isValidVersionPrefix(String version) |
Buffer |
prepareBuffer(byte cmd,
Buffer buffer)
Prepare a new "clean" buffer while reserving the needed space
(5 bytes) for the packet header.
|
KeyExchangeFuture |
reExchangeKeys()
Initiate a new key exchange.
|
Buffer |
request(String request,
Buffer buffer,
long timeout,
TimeUnit unit)
Send a global request and wait for the response.
|
void |
resetIdleTimeout()
Re-start idle timeout timer
|
IoWriteFuture |
sendDebugMessage(boolean display,
Object msg,
String lang)
Sends an
SSH_MSG_DEBUG to the peer session |
IoWriteFuture |
sendIgnoreMessage(byte... data)
Sends an
SSH_MSG_IGNORE to the peer session |
void |
setAuthenticated() |
void |
startService(String name) |
IoWriteFuture |
writePacket(Buffer buffer)
Encode and send the given buffer.
|
IoWriteFuture |
writePacket(Buffer buffer,
long timeout,
TimeUnit unit)
Encode and send the given buffer with the specified timeout.
|
getCipherFactories, getCipherFactoriesNameList, getCipherFactoriesNames, getCompressionFactories, getCompressionFactoriesNameList, getCompressionFactoriesNames, getKeyExchangeFactories, getMacFactories, getMacFactoriesNameList, getMacFactoriesNames, setCipherFactories, setCipherFactoriesNameList, setCipherFactoriesNames, setCipherFactoriesNames, setCompressionFactories, setCompressionFactoriesNameList, setCompressionFactoriesNames, setCompressionFactoriesNames, setKeyExchangeFactories, setMacFactories, setMacFactoriesNameList, setMacFactoriesNames, setMacFactoriesNamesgetKeyPairProvider, setKeyPairProvidergetSignatureFactories, getSignatureFactories, getSignatureFactoriesNameList, getSignatureFactoriesNames, resolveSignatureFactories, setSignatureFactories, setSignatureFactoriesNameList, setSignatureFactoriesNames, setSignatureFactoriesNamesaddSessionListener, getSessionListenerProxy, removeSessionListenergetReservedSessionMessagesHandler, setReservedSessionMessagesHandleraddChannelListener, getChannelListenerProxy, removeChannelListeneraddPortForwardingEventListener, getPortForwardingEventListenerProxy, removePortForwardingEventListenergetFactoryManagergetBoolean, getBooleanProperty, getInteger, getIntProperty, getLong, getLongProperty, getObject, getParentPropertyResolver, getProperties, getString, getStringPropertygetAttribute, removeAttribute, resolveAttribute, resolveAttribute, resolveAttribute, resolveAttribute, setAttributeaddCloseFutureListener, close, close, close, getMaxCloseWaitTime, isClosed, isClosing, isOpen, removeCloseFutureListenersetUsernamegetUsernamestatic final String DEFAULT_SSH_VERSION_PREFIX
static final String FALLBACK_SSH_VERSION_PREFIX
static final int MAX_VERSION_LINE_LENGTH
The maximum length of the string is 255 characters,
including the Carriage Return and Line Feed.
String getClientVersion()
String getServerVersion()
String getNegotiatedKexParameter(KexProposalOption paramType)
paramType - The request KexProposalOption value - ignored
if nullnull if invalid
parameter or no negotiated valueCipherInformation getCipherInformation(boolean incoming)
incoming - If true then the cipher for the incoming data,
otherwise for the outgoing dataCipherInformation - or null if not negotiated yet.CompressionInformation getCompressionInformation(boolean incoming)
incoming - If true then the compression for the incoming data,
otherwise for the outgoing dataCompressionInformation - or null if not negotiated yet.MacInformation getMacInformation(boolean incoming)
incoming - If true then the MAC for the incoming data,
otherwise for the outgoing dataMacInformation - or null if not negotiated yet.Buffer createBuffer(byte cmd)
cmd - the SSH commandBuffer createBuffer(byte cmd, int estimatedSize)
cmd - The SSH command to initialize the buffer withestimatedSize - Estimated number of bytes the buffer will hold, 0 if unknown.prepareBuffer(byte, Buffer)Buffer prepareBuffer(byte cmd, Buffer buffer)
cmd - The SSH command to initialize the buffer withbuffer - The Buffer instance to initializeIoWriteFuture sendDebugMessage(boolean display, Object msg, String lang) throws IOException
SSH_MSG_DEBUG to the peer sessiondisplay - true if OK to display the message at the peer as-ismsg - The message object whose toString() value to be used - if
null then the "null" string is sentlang - The language - null/empty if some pre-agreed default is usedIoWriteFuture that can be used to check when the packet has actually been sentIOException - if an error occurred when encoding sending the packetIoWriteFuture sendIgnoreMessage(byte... data) throws IOException
SSH_MSG_IGNORE to the peer sessiondata - The message dataIoWriteFuture that can be used to check when the packet has actually been sentIOException - if an error occurred when encoding sending the packetIoWriteFuture writePacket(Buffer buffer) throws IOException
buffer - the buffer to encode and sendIoWriteFuture that can be used to check when the packet has actually been sentIOException - if an error occurred when encoding sending the packetIoWriteFuture writePacket(Buffer buffer, long timeout, TimeUnit unit) throws IOException
IoWriteFuture will be set with a
TimeoutException exception to indicate a timeout.buffer - the buffer to encode and spendtimeout - the timeoutunit - the time unit of the timeout parameterIOException - if an error occurred when encoding sending the packetBuffer request(String request, Buffer buffer, long timeout, TimeUnit unit) throws IOException
SSH_MSG_GLOBAL_REQUEST with a result expected, else it will time outrequest - the request name - used mainly for logging and debuggingbuffer - the buffer containing the global requesttimeout - The number of time units to wait - must be positiveunit - The TimeUnit to wait for the responsenull otherwise.IOException - if an error occurred when encoding sending the packetvoid exceptionCaught(Throwable t)
SshException with a positive error codet - the exception to processKeyExchangeFuture reExchangeKeys() throws IOException
KeyExchangeFuture for awaiting the completion of the exchangeIOException - If failed to request keys re-negotiation<T extends Service> T getService(Class<T> clazz)
T - The generic Service typeclazz - The service classIllegalStateException - If failed to find a matching servicevoid resetIdleTimeout()
Session.TimeoutStatus getTimeoutStatus()
nulllong getAuthTimeout()
long getIdleTimeout()
boolean isAuthenticated()
void setAuthenticated()
throws IOException
IOExceptionbyte[] getSessionId()
null if
not yet establishedKeyExchange getKex()
void disconnect(int reason,
String msg)
throws IOException
reason - the reason code for this disconnectmsg - the text messageIOException - if an error occurred sending the packetvoid startService(String name) throws Exception
name - Service nameException - If failed to start itstatic boolean isValidVersionPrefix(String version)
version - The reported client/server versiontrue if version not empty and starts with either
"SSH-2.0-" or "SSH-1.99-"Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.