org.apache.commons.httpclient.auth
Class NTLMScheme

java.lang.Object
  extended by org.apache.commons.httpclient.auth.NTLMScheme
All Implemented Interfaces:
AuthScheme

public class NTLMScheme
extends 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 Gl???ck, Sean C. Sullivan, Adrian Sutton, Mike Bowler, Oleg Kalnichevski

Constructor Summary
NTLMScheme()
          Default constructor for the NTLM authentication scheme.
NTLMScheme(String challenge)
          Constructor for the NTLM authentication scheme.
 
Method Summary
 String authenticate(Credentials credentials, HttpMethod method)
          Produces NTLM authorization string for the given set of Credentials.
 String authenticate(Credentials credentials, String method, String uri)
          Deprecated. Use authenticate(Credentials, HttpMethod)
static String authenticate(NTCredentials credentials, String challenge)
          Deprecated. Use non-static authenticate(Credentials, HttpMethod)
static String authenticate(NTCredentials credentials, String challenge, String charset)
          Deprecated. Use non-static authenticate(Credentials, HttpMethod)
 String getID()
          Deprecated. no longer used
 String getParameter(String name)
          Returns the authentication parameter with the given name, if available.
 String getRealm()
          The concept of an authentication realm is not supported by the NTLM authentication scheme.
 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(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(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(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 String getSchemeName()
Returns textual designation of the NTLM authentication scheme.

Specified by:
getSchemeName in interface AuthScheme
Returns:
ntlm

getRealm

public 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 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 String getParameter(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 String authenticate(NTCredentials credentials,
                                  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 String authenticate(NTCredentials credentials,
                                  String challenge,
                                  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 String authenticate(Credentials credentials,
                           String method,
                           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 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 © 2001-2008 Apache Software Foundation. All Rights Reserved.