Class NextNonceInterceptor
- All Implemented Interfaces:
org.apache.hc.core5.http.HttpResponseInterceptor
NextNonceInterceptor is an HTTP response interceptor that extracts the nextnonce
parameter from the Authentication-Info header of an HTTP response. This parameter is used
in HTTP Digest Access Authentication to provide an additional nonce value that the client is expected
to use in subsequent authentication requests. By retrieving and storing this nextnonce value,
the interceptor facilitates one-time nonce implementations and prevents replay attacks by ensuring that
each request/response interaction includes a fresh nonce.
If present, the extracted nextnonce value is stored in the HttpContext under the attribute
auth-nextnonce, allowing it to be accessed in subsequent requests. If the header does not contain
the nextnonce parameter, no context attribute is set.
This implementation adheres to the HTTP/1.1 specification, particularly focusing on the Digest
scheme as defined in HTTP Digest Authentication, and parses header tokens using the Tokenizer
utility class for robust token parsing.
In the context of HTTP Digest Access Authentication, the nextnonce parameter is
a critical part of the security mechanism, designed to mitigate replay attacks and enhance mutual
authentication security. It provides the server with the ability to set and enforce single-use or
session-bound nonces, prompting the client to use the provided nextnonce in its next request.
This setup helps secure communication by forcing new cryptographic material in each transaction.
This interceptor is stateless and thread-safe, making it suitable for use across multiple threads and HTTP requests. It should be registered with the HTTP client to enable support for advanced authentication mechanisms that require tracking of nonce values.
- Since:
- 5.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringstatic final org.apache.hc.core5.http.HttpResponseInterceptorprivate static final org.apache.hc.core5.util.Tokenizer.Delimiterprivate final org.apache.hc.core5.util.Tokenizerprivate static final org.apache.hc.core5.util.Tokenizer.Delimiter -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringparseNextNonce(CharSequence buffer, org.apache.hc.core5.http.message.ParserCursor cursor) Parses theAuthentication-Infoheader content represented by aCharArrayBufferto extract thenextnonceparameter.voidprocess(org.apache.hc.core5.http.HttpResponse response, org.apache.hc.core5.http.EntityDetails entity, org.apache.hc.core5.http.protocol.HttpContext context) Processes the HTTP response and extracts thenextnonceparameter from theAuthentication-Infoheader if available, storing it in the providedcontext.
-
Field Details
-
INSTANCE
public static final org.apache.hc.core5.http.HttpResponseInterceptor INSTANCE -
tokenParser
private final org.apache.hc.core5.util.Tokenizer tokenParser -
AUTHENTICATION_INFO_HEADER
- See Also:
-
TOKEN_DELIMS
private static final org.apache.hc.core5.util.Tokenizer.Delimiter TOKEN_DELIMS -
VALUE_DELIMS
private static final org.apache.hc.core5.util.Tokenizer.Delimiter VALUE_DELIMS
-
-
Constructor Details
-
NextNonceInterceptor
public NextNonceInterceptor()
-
-
Method Details
-
process
public void process(org.apache.hc.core5.http.HttpResponse response, org.apache.hc.core5.http.EntityDetails entity, org.apache.hc.core5.http.protocol.HttpContext context) Processes the HTTP response and extracts thenextnonceparameter from theAuthentication-Infoheader if available, storing it in the providedcontext.- Specified by:
processin interfaceorg.apache.hc.core5.http.HttpResponseInterceptor- Parameters:
response- the HTTP response containing theAuthentication-Infoheaderentity- the response entity, ignored by this interceptorcontext- the HTTP context in which to store thenextnonceparameter- Throws:
NullPointerException- if eitherresponseorcontextis null
-
parseNextNonce
private String parseNextNonce(CharSequence buffer, org.apache.hc.core5.http.message.ParserCursor cursor) Parses theAuthentication-Infoheader content represented by aCharArrayBufferto extract thenextnonceparameter.- Parameters:
buffer- theCharArrayBuffercontaining the value of theAuthentication-Infoheadercursor- theParserCursorused to navigate through the buffer content- Returns:
- the extracted
nextnonceparameter value, ornullif the parameter is not found
-