org.apache.http.impl.auth
Class DigestSchemeHC4

java.lang.Object
  extended by org.apache.http.impl.auth.AuthSchemeBaseHC4
      extended by org.apache.http.impl.auth.RFC2617SchemeHC4
          extended by org.apache.http.impl.auth.DigestSchemeHC4
All Implemented Interfaces:
org.apache.http.auth.AuthScheme, ContextAwareAuthScheme

@NotThreadSafe
public class DigestSchemeHC4
extends RFC2617SchemeHC4

Digest authentication scheme as defined in RFC 2617. Both MD5 (default) and MD5-sess are supported. Currently only qop=auth or no qop is supported. qop=auth-int is unsupported. If auth and auth-int are provided, auth is used.

Since the digest username is included as clear text in the generated Authentication header, the charset of the username must be compatible with the HTTP element charset used by the connection.

Since:
4.0

Constructor Summary
DigestSchemeHC4()
           
DigestSchemeHC4(ChallengeState challengeState)
          Deprecated. (4.3) do not use.
DigestSchemeHC4(java.nio.charset.Charset credentialsCharset)
           
 
Method Summary
 org.apache.http.Header authenticate(org.apache.http.auth.Credentials credentials, org.apache.http.HttpRequest request)
          Deprecated. (4.2) Use ContextAwareAuthScheme.authenticate( Credentials, HttpRequest, org.apache.http.protocol.HttpContext)
 org.apache.http.Header authenticate(org.apache.http.auth.Credentials credentials, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)
          Produces a digest authorization string for the given set of Credentials, method name and URI.
static java.lang.String createCnonce()
          Creates a random cnonce value based on the current time.
 java.lang.String getSchemeName()
          Returns textual designation of the digest authentication scheme.
 boolean isComplete()
          Tests if the Digest authentication process has been completed.
 boolean isConnectionBased()
          Returns false.
 void overrideParamter(java.lang.String name, java.lang.String value)
           
 void processChallenge(org.apache.http.Header header)
          Processes the Digest challenge.
 java.lang.String toString()
           
 
Methods inherited from class org.apache.http.impl.auth.RFC2617SchemeHC4
getCredentialsCharset, getParameter, getParameters, getRealm, parseChallenge
 
Methods inherited from class org.apache.http.impl.auth.AuthSchemeBaseHC4
getChallengeState, isProxy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DigestSchemeHC4

public DigestSchemeHC4(java.nio.charset.Charset credentialsCharset)
Since:
4.3

DigestSchemeHC4

@Deprecated
public DigestSchemeHC4(ChallengeState challengeState)
Deprecated. (4.3) do not use.

Creates an instance of DigestScheme with the given challenge state.

Since:
4.2

DigestSchemeHC4

public DigestSchemeHC4()
Method Detail

processChallenge

public void processChallenge(org.apache.http.Header header)
                      throws org.apache.http.auth.MalformedChallengeException
Processes the Digest challenge.

Specified by:
processChallenge in interface org.apache.http.auth.AuthScheme
Overrides:
processChallenge in class AuthSchemeBaseHC4
Parameters:
header - the challenge header
Throws:
org.apache.http.auth.MalformedChallengeException - is thrown if the authentication challenge is malformed

isComplete

public boolean isComplete()
Tests if the Digest authentication process has been completed.

Returns:
true if Digest authorization has been processed, false otherwise.

getSchemeName

public java.lang.String getSchemeName()
Returns textual designation of the digest authentication scheme.

Returns:
digest

isConnectionBased

public boolean isConnectionBased()
Returns false. Digest authentication scheme is request based.

Returns:
false.

overrideParamter

public void overrideParamter(java.lang.String name,
                             java.lang.String value)

authenticate

@Deprecated
public org.apache.http.Header authenticate(org.apache.http.auth.Credentials credentials,
                                                      org.apache.http.HttpRequest request)
                                    throws org.apache.http.auth.AuthenticationException
Deprecated. (4.2) Use ContextAwareAuthScheme.authenticate( Credentials, HttpRequest, org.apache.http.protocol.HttpContext)

Throws:
org.apache.http.auth.AuthenticationException

authenticate

public org.apache.http.Header authenticate(org.apache.http.auth.Credentials credentials,
                                           org.apache.http.HttpRequest request,
                                           org.apache.http.protocol.HttpContext context)
                                    throws org.apache.http.auth.AuthenticationException
Produces a digest authorization string for the given set of Credentials, method name and URI.

Specified by:
authenticate in interface ContextAwareAuthScheme
Overrides:
authenticate in class AuthSchemeBaseHC4
Parameters:
credentials - A set of credentials to be used for athentication
request - The request being authenticated
context - HTTP context
Returns:
a digest authorization string
Throws:
org.apache.http.auth.InvalidCredentialsException - if authentication credentials are not valid or not applicable for this authentication scheme
org.apache.http.auth.AuthenticationException - if authorization string cannot be generated due to an authentication failure

createCnonce

public static java.lang.String createCnonce()
Creates a random cnonce value based on the current time.

Returns:
The cnonce value as String.

toString

public java.lang.String toString()
Overrides:
toString in class AuthSchemeBaseHC4