class ProxyDigestAuthenticator
extends java.lang.Object
Authorization
header of HTTP request for Digest Http Authentication scheme (RFC 2617).Modifier and Type | Class and Description |
---|---|
(package private) static class |
ProxyDigestAuthenticator.Algorithm |
(package private) class |
ProxyDigestAuthenticator.DigestScheme
Digest scheme POJO
|
private static class |
ProxyDigestAuthenticator.QOP |
Modifier and Type | Field and Description |
---|---|
private static java.nio.charset.Charset |
CHARACTER_SET
Encoding used for authentication calculations.
|
private static int |
CLIENT_NONCE_BYTE_COUNT |
private static char[] |
HEX_ARRAY |
private static java.util.regex.Pattern |
KEY_VALUE_PAIR_PATTERN |
private static java.util.logging.Logger |
logger |
private java.security.SecureRandom |
randomGenerator |
Constructor and Description |
---|
ProxyDigestAuthenticator() |
Modifier and Type | Method and Description |
---|---|
private static void |
append(java.lang.StringBuilder sb,
java.lang.String key,
java.lang.String value)
Append comma separated key=value token.
|
private static void |
append(java.lang.StringBuilder sb,
java.lang.String key,
java.lang.String value,
boolean useQuote)
Append comma separated key=value token
|
private static java.lang.String |
bytesToHex(byte[] bytes)
Convert bytes array to hex string.
|
private java.lang.String |
createNextAuthToken(ProxyDigestAuthenticator.DigestScheme ds,
java.lang.String uri,
java.lang.String method,
java.lang.String userName,
java.lang.String password)
Creates digest string including counter.
|
(package private) java.lang.String |
generateAuthorizationHeader(java.net.URI uri,
java.lang.String method,
java.lang.String authenticateHeader,
java.lang.String userName,
java.lang.String password) |
private static java.lang.String |
md5(java.lang.String... tokens)
Colon separated value MD5 hash.
|
private ProxyDigestAuthenticator.DigestScheme |
parseAuthHeaders(java.lang.String authHeader)
Parse digest header.
|
private java.lang.String |
randomBytes(int nbBytes)
Generate a random sequence of bytes and return its hex representation
|
private static final java.nio.charset.Charset CHARACTER_SET
private static final java.util.logging.Logger logger
private static final char[] HEX_ARRAY
private static final java.util.regex.Pattern KEY_VALUE_PAIR_PATTERN
private static final int CLIENT_NONCE_BYTE_COUNT
private java.security.SecureRandom randomGenerator
java.lang.String generateAuthorizationHeader(java.net.URI uri, java.lang.String method, java.lang.String authenticateHeader, java.lang.String userName, java.lang.String password) throws ProxyAuthenticationException
ProxyAuthenticationException
private ProxyDigestAuthenticator.DigestScheme parseAuthHeaders(java.lang.String authHeader) throws java.io.IOException
authHeader
- value of WWW-Authenticate
headernull
if no digest header exists.java.io.IOException
private java.lang.String createNextAuthToken(ProxyDigestAuthenticator.DigestScheme ds, java.lang.String uri, java.lang.String method, java.lang.String userName, java.lang.String password) throws ProxyAuthenticationException
ds
- DigestScheme instanceuri
- client request uriProxyAuthenticationException
- if MD5 hash failsprivate static void append(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value, boolean useQuote)
sb
- string builder instancekey
- key stringvalue
- value stringuseQuote
- true if value needs to be enclosed in quotesprivate static void append(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value)
sb
- string builder instancekey
- key stringvalue
- value stringprivate static java.lang.String bytesToHex(byte[] bytes)
bytes
- array of bytesprivate static java.lang.String md5(java.lang.String... tokens) throws ProxyAuthenticationException
tokens
- one or more stringsProxyAuthenticationException
- if MD5 algorithm cannot be instantiatedprivate java.lang.String randomBytes(int nbBytes)
nbBytes
- number of bytes to generate