## jcifs.smb
Class SmbSession

    java.lang.Object
      |
      +--jcifs.smb.SmbSession

public final class SmbSession
extends java.lang.Object

The class represents a user's session established with an SMB/CIFS server. This class is used internally to the jCIFS library however applications may wish to authenticate aribrary user credentials with the `logon` method. It is noteworthy that jCIFS does not support DCE/RPC at this time and therefore does not use the NETLOGON procedure. Instead, it simply performs a "tree connect" to IPC$ using the supplied credentials. This is only a subset of the NETLOGON procedure but is achives the same effect. Note that it is possible to change the resource against which clients are authenticated to be something other than `IPC$` using the `jcifs.smb.client.logonShare` property. This can be used to provide simple group based access control. For example, one could setup the NTLM HTTP Filter with the `jcifs.smb.client.domainController` init parameter set to the name of the server used for authentication. On that host, create a share called JCIFSAUTH and adjust the access control list for that share to permit only the clients that should have access to the target website. Finally, set the `jcifs.smb.client.logonShare` to JCIFSAUTH. This should restrict access to only those clients that have access to the JCIFSAUTH share. The access control on that share can be changed without changing init parameters or reinitializing the webapp.

Method Summary
`static byte[]` `getChallenge(jcifs.UniAddress dc)`
`static byte[]` `getChallenge(jcifs.UniAddress dc, int port)`
`static jcifs.smb.NtlmChallenge` `getChallengeForDomain()`
`static void` `logon(jcifs.UniAddress dc, int port, jcifs.smb.NtlmPasswordAuthentication auth)`
`static void` `logon(jcifs.UniAddress dc, jcifs.smb.NtlmPasswordAuthentication auth)` Authenticate arbitrary credentials represented by the `NtlmPasswordAuthentication` object against the domain controller specified by the `UniAddress` parameter.
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Method Detail

### getChallengeForDomain

    public static jcifs.smb.NtlmChallenge getChallengeForDomain()
                                                         throws SmbException,
                                                                java.net.UnknownHostException

    `SmbException`
    `java.net.UnknownHostException`

### getChallenge

    public static byte[] getChallenge(jcifs.UniAddress dc)
                               throws SmbException,
                                      java.net.UnknownHostException

    `SmbException`
    `java.net.UnknownHostException`

### getChallenge

    public static byte[] getChallenge(jcifs.UniAddress dc,
                                      int port)
                               throws SmbException,
                                      java.net.UnknownHostException

    `SmbException`
    `java.net.UnknownHostException`

### logon

    public static void logon(jcifs.UniAddress dc,
                             jcifs.smb.NtlmPasswordAuthentication auth)
                      throws SmbException

  Authenticate arbitrary credentials represented by the `NtlmPasswordAuthentication` object against the domain controller specified by the `UniAddress` parameter. If the credentials are not accepted, an `SmbAuthException` will be thrown. If an error occurs an `SmbException` will be thrown. If the credentials are valid, the method will return without throwing an exception. See the last FAQ question. See also the `jcifs.smb.client.logonShare` property.

    `SmbException`

### logon

    public static void logon(jcifs.UniAddress dc,
                             int port,
                             jcifs.smb.NtlmPasswordAuthentication auth)
                      throws SmbException

    `SmbException`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`