Package org.apache.http.impl.auth
Class DigestScheme
java.lang.Object
org.apache.http.impl.auth.AuthSchemeBase
org.apache.http.impl.auth.RFC2617Scheme
org.apache.http.impl.auth.DigestScheme
- All Implemented Interfaces:
Serializable
,AuthScheme
,ContextAwareAuthScheme
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
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private String
private String
private boolean
Whether the digest authentication process is completeprivate static final char[]
Hexa values used when creating 32 character long digest in HTTP DigestScheme in case of authentication.private String
private long
private static final int
private static final int
private static final int
private static final int
private static final long
Fields inherited from class org.apache.http.impl.auth.AuthSchemeBase
challengeState
-
Constructor Summary
ConstructorsConstructorDescriptionDigestScheme
(Charset credentialsCharset) DigestScheme
(ChallengeState challengeState) Deprecated.(4.3) do not use. -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.http.Header
authenticate
(Credentials credentials, org.apache.http.HttpRequest request) org.apache.http.Header
authenticate
(Credentials credentials, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context) Produces a digest authorization string for the given set ofCredentials
, method name and URI.static String
Creates a random cnonce value based on the current time.private org.apache.http.Header
createDigestHeader
(Credentials credentials, org.apache.http.HttpRequest request) Creates digest-response header as defined in RFC2617.private static MessageDigest
createMessageDigest
(String digAlg) (package private) static String
encode
(byte[] binaryData) Encodes the 128 bit (16 bytes) MD5 digest into a 32 characters longString
according to RFC 2617.(package private) String
getA1()
(package private) String
getA2()
(package private) String
Returns textual designation of the digest authentication scheme.boolean
Tests if the Digest authentication process has been completed.boolean
Returnsfalse
.void
overrideParamter
(String name, String value) void
processChallenge
(org.apache.http.Header header) Processes the Digest challenge.toString()
Methods inherited from class org.apache.http.impl.auth.RFC2617Scheme
getCredentialsCharset, getCredentialsCharset, getParameter, getParameters, getRealm, parseChallenge
Methods inherited from class org.apache.http.impl.auth.AuthSchemeBase
getChallengeState, isProxy
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
HEXADECIMAL
private static final char[] HEXADECIMALHexa values used when creating 32 character long digest in HTTP DigestScheme in case of authentication.- See Also:
-
complete
private boolean completeWhether the digest authentication process is complete -
QOP_UNKNOWN
private static final int QOP_UNKNOWN- See Also:
-
QOP_MISSING
private static final int QOP_MISSING- See Also:
-
QOP_AUTH_INT
private static final int QOP_AUTH_INT- See Also:
-
QOP_AUTH
private static final int QOP_AUTH- See Also:
-
lastNonce
-
nounceCount
private long nounceCount -
cnonce
-
a1
-
a2
-
-
Constructor Details
-
DigestScheme
- Since:
- 4.3
-
DigestScheme
Deprecated.(4.3) do not use.Creates an instance ofDigestScheme
with the given challenge state.- Since:
- 4.2
-
DigestScheme
public DigestScheme()
-
-
Method Details
-
processChallenge
Processes the Digest challenge.- Specified by:
processChallenge
in interfaceAuthScheme
- Overrides:
processChallenge
in classAuthSchemeBase
- Parameters:
header
- the challenge header- Throws:
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
Returns textual designation of the digest authentication scheme.- Returns:
digest
-
isConnectionBased
public boolean isConnectionBased()Returnsfalse
. Digest authentication scheme is request based.- Returns:
false
.
-
overrideParamter
-
authenticate
@Deprecated public org.apache.http.Header authenticate(Credentials credentials, org.apache.http.HttpRequest request) throws AuthenticationException Deprecated.Description copied from interface:AuthScheme
Produces an authorization string for the given set ofCredentials
.- Parameters:
credentials
- The set of credentials to be used for athenticationrequest
- The request being authenticated- Returns:
- the authorization string
- Throws:
AuthenticationException
- if authorization string cannot be generated due to an authentication failure
-
authenticate
public org.apache.http.Header authenticate(Credentials credentials, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context) throws AuthenticationException Produces a digest authorization string for the given set ofCredentials
, method name and URI.- Specified by:
authenticate
in interfaceContextAwareAuthScheme
- Overrides:
authenticate
in classAuthSchemeBase
- Parameters:
credentials
- A set of credentials to be used for athenticationrequest
- The request being authenticatedcontext
- HTTP context- Returns:
- a digest authorization string
- Throws:
InvalidCredentialsException
- if authentication credentials are not valid or not applicable for this authentication schemeAuthenticationException
- if authorization string cannot be generated due to an authentication failure
-
createMessageDigest
private static MessageDigest createMessageDigest(String digAlg) throws UnsupportedDigestAlgorithmException -
createDigestHeader
private org.apache.http.Header createDigestHeader(Credentials credentials, org.apache.http.HttpRequest request) throws AuthenticationException Creates digest-response header as defined in RFC2617.- Parameters:
credentials
- User credentials- Returns:
- The digest-response as String.
- Throws:
AuthenticationException
-
getCnonce
String getCnonce() -
getA1
String getA1() -
getA2
String getA2() -
encode
Encodes the 128 bit (16 bytes) MD5 digest into a 32 characters longString
according to RFC 2617.- Parameters:
binaryData
- array containing the digest- Returns:
- encoded MD5, or
null
if encoding failed
-
createCnonce
Creates a random cnonce value based on the current time.- Returns:
- The cnonce value as String.
-
toString
- Overrides:
toString
in classAuthSchemeBase
-