Class Session
java.lang.Object
com.hierynomus.smbj.session.Session
- All Implemented Interfaces:
AutoCloseable
A Session
-
Constructor Summary
ConstructorsConstructorDescriptionSession(Connection connection, SmbConfig config, AuthenticationContext userCredentials, SMBEventBus bus, PathResolver pathResolver, Signatory signatory, PacketEncryptor encryptor) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()connectShare(String shareName) Connect to a share on the remote machine over the authenticated session.getNestedSession(SmbPath resolvedSharePath) longgetSigningKey(SMB2PacketHeader header, boolean signing) If Connection.Dialect belongs to the SMB 3.x dialect family, and the received message is an SMB2 SESSION_SETUP Response without a status code equal to STATUS_SUCCESS in the header, the client MUST verify the signature of the message as specified in section 3.1.5.1, using Session.SigningKey as the signing key, and passing the response message.booleanbooleanisGuest()booleanvoidlogoff()<T extends SMB2Packet>
TprocessSendResponse(SMB2CreateRequest packet) <T extends SMB2Packet>
Future<T> send(SMB2Packet packet) send a packet.voidsetSessionId(long sessionId) booleanReturns whether packets for this session should be encrypted.
-
Constructor Details
-
Session
public Session(Connection connection, SmbConfig config, AuthenticationContext userCredentials, SMBEventBus bus, PathResolver pathResolver, Signatory signatory, PacketEncryptor encryptor)
-
-
Method Details
-
getSessionId
public long getSessionId() -
setSessionId
public void setSessionId(long sessionId) -
getNestedSession
-
logoff
- Throws:
TransportException
-
isSigningRequired
public boolean isSigningRequired() -
isGuest
public boolean isGuest() -
isAnonymous
public boolean isAnonymous() -
close
- Specified by:
closein interfaceAutoCloseable- Throws:
IOException
-
getConnection
-
send
send a packet. The packet will be signed or not depending on the session's flags.- Parameters:
packet- SMBPacket to send- Returns:
- a Future to be used to retrieve the response packet
- Throws:
TransportException
-
processSendResponse
public <T extends SMB2Packet> T processSendResponse(SMB2CreateRequest packet) throws TransportException - Throws:
TransportException
-
getSigningKey
If Connection.Dialect belongs to the SMB 3.x dialect family, and the received message is an SMB2 SESSION_SETUP Response without a status code equal to STATUS_SUCCESS in the header, the client MUST verify the signature of the message as specified in section 3.1.5.1, using Session.SigningKey as the signing key, and passing the response message. For all other messages, the client MUST look up the Channel in Session.ChannelList, where the Channel.Connection matches the connection on which this message is received, and MUST use Channel.SigningKey for verifying the signature as specified in section 3.1.5.1. Otherwise, the client MUST verify the signature of the message as specified in section 3.1.5.1, using Session.SessionKey as the signing key, and passing the response message.- Parameters:
signing- If true, check for signing mode, else get for verification mode- Returns:
-
shouldEncryptData
Returns whether packets for this session should be encrypted.- Returns:
- Throws:
TransportException- When encryption is required and encryption key is missing.
-
getSessionContext
-
getAuthenticationContext
-