NTLMScheme (HttpClient Library (Version 3.1))
Date: 2016-03-09

org.apache.commons.httpclient.auth

## Class NTLMScheme

- java.lang.Object
- - org.apache.commons.httpclient.auth.NTLMScheme

- All Implemented Interfaces:
    AuthScheme

      public class NTLMScheme
      extends java.lang.Object
      implements AuthScheme

  An implementation of the Microsoft proprietary NTLM authentication scheme. For a detailed explanation of the NTLM scheme please see http://davenport.sourceforge.net/ntlm.html.
  Author:
    Remy Maucherat, Rodney Waldhoff, Jeff Dever, Ortwin Glueck, Sean C. Sullivan, Adrian Sutton, Mike Bowler, Oleg Kalnichevski

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `NTLMScheme()` Default constructor for the NTLM authentication scheme.
    `NTLMScheme(java.lang.String challenge)` Constructor for the NTLM authentication scheme.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `authenticate(Credentials credentials, HttpMethod method)` Produces NTLM authorization string for the given set of `Credentials`.
    `java.lang.String` | `authenticate(Credentials credentials, java.lang.String method, java.lang.String uri)` Deprecated. Use `authenticate(Credentials, HttpMethod)`
    `static java.lang.String` | `authenticate(NTCredentials credentials, java.lang.String challenge)` Deprecated. Use non-static `authenticate(Credentials, HttpMethod)`
    `static java.lang.String` | `authenticate(NTCredentials credentials, java.lang.String challenge, java.lang.String charset)` Deprecated. Use non-static `authenticate(Credentials, HttpMethod)`
    `java.lang.String` | `getID()` Deprecated. no longer used
    `java.lang.String` | `getParameter(java.lang.String name)` Returns the authentication parameter with the given name, if available.
    `java.lang.String` | `getRealm()` The concept of an authentication realm is not supported by the NTLM authentication scheme.
    `java.lang.String` | `getSchemeName()` Returns textual designation of the NTLM authentication scheme.
    `boolean` | `isComplete()` Tests if the NTLM authentication process has been completed.
    `boolean` | `isConnectionBased()` Returns `true`.
    `void` | `processChallenge(java.lang.String challenge)` Processes the NTLM challenge.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### NTLMScheme

          public NTLMScheme()

      Default constructor for the NTLM authentication scheme.
      Since:
        3.0

    - #### NTLMScheme

          public NTLMScheme(java.lang.String challenge)
                     throws MalformedChallengeException

      Constructor for the NTLM authentication scheme.
      Parameters:
        `challenge` - The authentication challenge
      Throws:
        `MalformedChallengeException` - is thrown if the authentication challenge is malformed

  - ### Method Detail

    - #### processChallenge

          public void processChallenge(java.lang.String challenge)
                                throws MalformedChallengeException

      Processes the NTLM challenge.
      Specified by:
        `processChallenge` in interface `AuthScheme`
      Parameters:
        `challenge` - the challenge string
      Throws:
        `MalformedChallengeException` - is thrown if the authentication challenge is malformed
      Since:
        3.0

    - #### isComplete

          public boolean isComplete()

      Tests if the NTLM authentication process has been completed.
      Specified by:
        `isComplete` in interface `AuthScheme`
      Returns:
        `true` if Basic authorization has been processed, `false` otherwise.
      Since:
        3.0

    - #### getSchemeName

          public java.lang.String getSchemeName()

      Returns textual designation of the NTLM authentication scheme.
      Specified by:
        `getSchemeName` in interface `AuthScheme`
      Returns:
        `ntlm`

    - #### getRealm

          public java.lang.String getRealm()

      The concept of an authentication realm is not supported by the NTLM authentication scheme. Always returns `null`.
      Specified by:
        `getRealm` in interface `AuthScheme`
      Returns:
        `null`

    - #### getID

          public java.lang.String getID()

      Deprecated. no longer used
      Returns a String identifying the authentication challenge. This is used, in combination with the host and port to determine if authorization has already been attempted or not. Schemes which require multiple requests to complete the authentication should return a different value for each stage in the request.

      Additionally, the ID should take into account any changes to the authentication challenge and return a different value when appropriate. For example when the realm changes in basic authentication it should be considered a different authentication attempt and a different value should be returned.

      Specified by:
        `getID` in interface `AuthScheme`
      Returns:
        String a String identifying the authentication challenge. The returned value may be null.

    - #### getParameter

          public java.lang.String getParameter(java.lang.String name)

      Returns the authentication parameter with the given name, if available.

      There are no valid parameters for NTLM authentication so this method always returns `null`.

      Specified by:
        `getParameter` in interface `AuthScheme`
      Parameters:
        `name` - The name of the parameter to be returned
      Returns:
        the parameter with the given name

    - #### isConnectionBased

          public boolean isConnectionBased()

      Returns `true`. NTLM authentication scheme is connection based.
      Specified by:
        `isConnectionBased` in interface `AuthScheme`
      Returns:
        `true`.
      Since:
        3.0

    - #### authenticate

          public static java.lang.String authenticate(NTCredentials credentials,
                                      java.lang.String challenge)
                                               throws AuthenticationException

      Deprecated. Use non-static `authenticate(Credentials, HttpMethod)`
      Create a NTLM authorization string for the given challenge and NT credentials.
      Parameters:
        `challenge` - The challenge.
        `credentials` - `NTCredentials`
      Returns:
        a ntlm authorization string
      Throws:
        `AuthenticationException` - is thrown if authentication fails

    - #### authenticate

          public static java.lang.String authenticate(NTCredentials credentials,
                                      java.lang.String challenge,
                                      java.lang.String charset)
                                               throws AuthenticationException

      Deprecated. Use non-static `authenticate(Credentials, HttpMethod)`
      Create a NTLM authorization string for the given challenge and NT credentials.
      Parameters:
        `challenge` - The challenge.
        `credentials` - `NTCredentials`
        `charset` - The charset to use for encoding the credentials
      Returns:
        a ntlm authorization string
      Throws:
        `AuthenticationException` - is thrown if authentication fails
      Since:
        3.0

    - #### authenticate

          public java.lang.String authenticate(Credentials credentials,
                                      java.lang.String method,
                                      java.lang.String uri)
                                        throws AuthenticationException

      Deprecated. Use `authenticate(Credentials, HttpMethod)`
      Produces NTLM authorization string for the given set of `Credentials`.
      Specified by:
        `authenticate` in interface `AuthScheme`
      Parameters:
        `credentials` - The set of credentials to be used for athentication
        `method` - Method name is ignored by the NTLM authentication scheme
        `uri` - URI is ignored by the NTLM authentication scheme
      Returns:
        an NTLM authorization string
      Throws:
        `InvalidCredentialsException` - if authentication credentials are not valid or not applicable for this authentication scheme
        `AuthenticationException` - if authorization string cannot be generated due to an authentication failure
      See Also:
        `HttpMethod.getName()`, `HttpMethod.getPath()`

    - #### authenticate

          public java.lang.String authenticate(Credentials credentials,
                                      HttpMethod method)
                                        throws AuthenticationException

      Produces NTLM authorization string for the given set of `Credentials`.
      Specified by:
        `authenticate` in interface `AuthScheme`
      Parameters:
        `credentials` - The set of credentials to be used for athentication
        `method` - The method being authenticated
      Returns:
        an NTLM authorization string
      Throws:
        `InvalidCredentialsException` - if authentication credentials are not valid or not applicable for this authentication scheme
        `AuthenticationException` - if authorization string cannot be generated due to an authentication failure
      Since:
        3.0

Copyright (c) 1999-2005 - Apache Software Foundation