Class ProxyDigestAuthenticator
- java.lang.Object
-
- org.glassfish.jersey.jdk.connector.internal.ProxyDigestAuthenticator
-
class ProxyDigestAuthenticator extends java.lang.ObjectGenerates a value ofAuthorizationheader of HTTP request for Digest Http Authentication scheme (RFC 2617).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classProxyDigestAuthenticator.Algorithm(package private) classProxyDigestAuthenticator.DigestSchemeDigest scheme POJOprivate static classProxyDigestAuthenticator.QOP
-
Field Summary
Fields Modifier and Type Field Description private static java.nio.charset.CharsetCHARACTER_SETEncoding used for authentication calculations.private static intCLIENT_NONCE_BYTE_COUNTprivate static char[]HEX_ARRAYprivate static java.util.regex.PatternKEY_VALUE_PAIR_PATTERNprivate static java.util.logging.Loggerloggerprivate java.security.SecureRandomrandomGenerator
-
Constructor Summary
Constructors Constructor Description ProxyDigestAuthenticator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidappend(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value)Append comma separated key=value token.private static voidappend(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value, boolean useQuote)Append comma separated key=value tokenprivate static java.lang.StringbytesToHex(byte[] bytes)Convert bytes array to hex string.private java.lang.StringcreateNextAuthToken(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.StringgenerateAuthorizationHeader(java.net.URI uri, java.lang.String method, java.lang.String authenticateHeader, java.lang.String userName, java.lang.String password)private static java.lang.Stringmd5(java.lang.String... tokens)Colon separated value MD5 hash.private ProxyDigestAuthenticator.DigestSchemeparseAuthHeaders(java.lang.String authHeader)Parse digest header.private java.lang.StringrandomBytes(int nbBytes)Generate a random sequence of bytes and return its hex representation
-
-
-
Field Detail
-
CHARACTER_SET
private static final java.nio.charset.Charset CHARACTER_SET
Encoding used for authentication calculations.
-
logger
private static final java.util.logging.Logger logger
-
HEX_ARRAY
private static final char[] HEX_ARRAY
-
KEY_VALUE_PAIR_PATTERN
private static final java.util.regex.Pattern KEY_VALUE_PAIR_PATTERN
-
CLIENT_NONCE_BYTE_COUNT
private static final int CLIENT_NONCE_BYTE_COUNT
- See Also:
- Constant Field Values
-
randomGenerator
private java.security.SecureRandom randomGenerator
-
-
Method Detail
-
generateAuthorizationHeader
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- Throws:
ProxyAuthenticationException
-
parseAuthHeaders
private ProxyDigestAuthenticator.DigestScheme parseAuthHeaders(java.lang.String authHeader) throws java.io.IOException
Parse digest header.- Parameters:
authHeader- value ofWWW-Authenticateheader- Returns:
- DigestScheme or
nullif no digest header exists. - Throws:
java.io.IOException
-
createNextAuthToken
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
Creates digest string including counter.- Parameters:
ds- DigestScheme instanceuri- client request uri- Returns:
- digest authentication token string
- Throws:
ProxyAuthenticationException- if MD5 hash fails
-
append
private static void append(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value, boolean useQuote)Append comma separated key=value token- Parameters:
sb- string builder instancekey- key stringvalue- value stringuseQuote- true if value needs to be enclosed in quotes
-
append
private static void append(java.lang.StringBuilder sb, java.lang.String key, java.lang.String value)Append comma separated key=value token. The value gets enclosed in quotes.- Parameters:
sb- string builder instancekey- key stringvalue- value string
-
bytesToHex
private static java.lang.String bytesToHex(byte[] bytes)
Convert bytes array to hex string.- Parameters:
bytes- array of bytes- Returns:
- hex string
-
md5
private static java.lang.String md5(java.lang.String... tokens) throws ProxyAuthenticationExceptionColon separated value MD5 hash.- Parameters:
tokens- one or more strings- Returns:
- M5 hash string
- Throws:
ProxyAuthenticationException- if MD5 algorithm cannot be instantiated
-
randomBytes
private java.lang.String randomBytes(int nbBytes)
Generate a random sequence of bytes and return its hex representation- Parameters:
nbBytes- number of bytes to generate- Returns:
- hex string
-
-