Package com.hierynomus.smbj.connection
Class ConnectionContext
- java.lang.Object
-
- com.hierynomus.smbj.connection.ConnectionContext
-
public class ConnectionContext extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private SMB3EncryptionCipher
cipherId
private java.util.EnumSet<SMB2GlobalCapability>
clientCapabilities
private java.util.UUID
clientGuid
private int
clientSecurityMode
private java.util.Set<SMB3CompressionAlgorithm>
compressionIds
private byte[]
gssNegotiateToken
private NegotiatedProtocol
negotiatedProtocol
private java.lang.String
netBiosName
private SMB3HashAlgorithm
preauthIntegrityHashId
private byte[]
preauthIntegrityHashValue
private Server
server
private static int
SIGNING_ENABLED
private static int
SIGNING_REQUIRED
private java.lang.Long
timeOffsetMillis
private WindowsVersion
windowsVersion
-
Constructor Summary
Constructors Constructor Description ConnectionContext(java.util.UUID clientGuid, java.lang.String hostname, int port, SmbConfig config)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
clientPrefersEncryption()
Indicates that the client prefers encryption on this connection.SMB3EncryptionCipher
getCipherId()
java.util.EnumSet<SMB2GlobalCapability>
getClientCapabilities()
java.util.UUID
getClientGuid()
java.util.Set<SMB3CompressionAlgorithm>
getCompressionIds()
byte[]
getGssNegotiateToken()
NegotiatedProtocol
getNegotiatedProtocol()
java.lang.String
getNetBiosName()
SMB3HashAlgorithm
getPreauthIntegrityHashId()
byte[]
getPreauthIntegrityHashValue()
Server
getServer()
(package private) java.util.Set<SMB2GlobalCapability>
getServerCapabilities()
java.util.UUID
getServerGuid()
java.lang.String
getServerName()
(package private) int
getServerSecurityMode()
java.lang.Long
getTimeOffsetMillis()
WindowsVersion
getWindowsVersion()
boolean
isServerRequiresSigning()
boolean
isServerSigningEnabled()
(package private) void
negotiated(SMBProtocolNegotiator.NegotiationContext negotiationContext)
void
setNetBiosName(java.lang.String netBiosName)
void
setServer(Server server)
void
setWindowsVersion(WindowsVersion windowsVersion)
private boolean
supports(SMB2GlobalCapability capability)
boolean
supportsDFS()
boolean
supportsDirectoryLeasing()
If Connection.Dialect belongs to the SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_DIRECTORY_LEASING is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsDirectoryLeasing to TRUE.boolean
supportsEncryption()
boolean
supportsFileLeasing()
If the client implements SMB 2.1 or SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_LEASING is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsFileLeasing to TRUE.boolean
supportsMultiChannel()
If Connection.Dialect belongs to the SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_MULTI_CHANNEL is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsMultiChannel to TRUE.boolean
supportsMultiCredit()
If the client implements SMB 2.1 or SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_LARGE_MTU is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsMultiCredit to TRUE.java.lang.String
toString()
-
-
-
Field Detail
-
SIGNING_ENABLED
private static final int SIGNING_ENABLED
- See Also:
- Constant Field Values
-
SIGNING_REQUIRED
private static final int SIGNING_REQUIRED
- See Also:
- Constant Field Values
-
windowsVersion
private WindowsVersion windowsVersion
-
netBiosName
private java.lang.String netBiosName
-
gssNegotiateToken
private byte[] gssNegotiateToken
-
negotiatedProtocol
private NegotiatedProtocol negotiatedProtocol
-
server
private Server server
-
clientGuid
private final java.util.UUID clientGuid
-
clientCapabilities
private java.util.EnumSet<SMB2GlobalCapability> clientCapabilities
-
clientSecurityMode
private int clientSecurityMode
-
preauthIntegrityHashId
private SMB3HashAlgorithm preauthIntegrityHashId
-
preauthIntegrityHashValue
private byte[] preauthIntegrityHashValue
-
cipherId
private SMB3EncryptionCipher cipherId
-
compressionIds
private java.util.Set<SMB3CompressionAlgorithm> compressionIds
-
timeOffsetMillis
private java.lang.Long timeOffsetMillis
-
-
Constructor Detail
-
ConnectionContext
ConnectionContext(java.util.UUID clientGuid, java.lang.String hostname, int port, SmbConfig config)
-
-
Method Detail
-
negotiated
void negotiated(SMBProtocolNegotiator.NegotiationContext negotiationContext)
-
getClientGuid
public java.util.UUID getClientGuid()
-
isServerRequiresSigning
public boolean isServerRequiresSigning()
-
isServerSigningEnabled
public boolean isServerSigningEnabled()
-
getServerSecurityMode
int getServerSecurityMode()
-
getServerCapabilities
java.util.Set<SMB2GlobalCapability> getServerCapabilities()
-
getNegotiatedProtocol
public NegotiatedProtocol getNegotiatedProtocol()
-
getGssNegotiateToken
public byte[] getGssNegotiateToken()
-
getServerGuid
public java.util.UUID getServerGuid()
-
getServerName
public java.lang.String getServerName()
-
supports
private boolean supports(SMB2GlobalCapability capability)
-
getClientCapabilities
public java.util.EnumSet<SMB2GlobalCapability> getClientCapabilities()
-
getWindowsVersion
public WindowsVersion getWindowsVersion()
-
setWindowsVersion
public void setWindowsVersion(WindowsVersion windowsVersion)
-
getNetBiosName
public java.lang.String getNetBiosName()
-
setNetBiosName
public void setNetBiosName(java.lang.String netBiosName)
-
getCipherId
public SMB3EncryptionCipher getCipherId()
-
supportsEncryption
public boolean supportsEncryption()
-
clientPrefersEncryption
public boolean clientPrefersEncryption()
Indicates that the client prefers encryption on this connection. This will only be enabled if the established Session has an encryptionkey set.- Returns:
true
iff the negotiated protocol is at least SMB3 and both client and server have indicated they support encryption
-
supportsDFS
public boolean supportsDFS()
-
supportsFileLeasing
public boolean supportsFileLeasing()
If the client implements SMB 2.1 or SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_LEASING is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsFileLeasing to TRUE. Otherwise, it MUST be set to FALSE.- Returns:
-
supportsMultiCredit
public boolean supportsMultiCredit()
If the client implements SMB 2.1 or SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_LARGE_MTU is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsMultiCredit to TRUE. Otherwise, it MUST be set to FALSE.- Returns:
-
supportsDirectoryLeasing
public boolean supportsDirectoryLeasing()
If Connection.Dialect belongs to the SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_DIRECTORY_LEASING is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsDirectoryLeasing to TRUE. Otherwise, it MUST be set to FALSE.- Returns:
-
supportsMultiChannel
public boolean supportsMultiChannel()
If Connection.Dialect belongs to the SMB 3.x dialect family, the client MUST perform the following: If SMB2_GLOBAL_CAP_MULTI_CHANNEL is set in the Capabilities field of the SMB2 NEGOTIATE Response, the client MUST set Connection.SupportsMultiChannel to TRUE. Otherwise, it MUST be set to FALSE.- Returns:
-
getTimeOffsetMillis
public java.lang.Long getTimeOffsetMillis()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getServer
public Server getServer()
-
setServer
public void setServer(Server server)
-
getPreauthIntegrityHashId
public SMB3HashAlgorithm getPreauthIntegrityHashId()
-
getPreauthIntegrityHashValue
public byte[] getPreauthIntegrityHashValue()
-
getCompressionIds
public java.util.Set<SMB3CompressionAlgorithm> getCompressionIds()
-
-