Class HttpAuthenticationFilter
java.lang.Object
org.glassfish.jersey.client.authentication.HttpAuthenticationFilter
- All Implemented Interfaces:
javax.ws.rs.client.ClientRequestFilter
,javax.ws.rs.client.ClientResponseFilter
@Priority(1000)
class HttpAuthenticationFilter
extends Object
implements javax.ws.rs.client.ClientRequestFilter, javax.ws.rs.client.ClientResponseFilter
Http Authentication filter that provides basic and digest authentication (based on RFC 2617).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
Credentials (username + password).(package private) static enum
Authentication type. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BasicAuthenticator
(package private) static final Charset
Encoding used for authentication calculations.private final DigestAuthenticator
private static final int
private final HttpAuthenticationFeature.Mode
private static final String
private static final String
private final Map
<String, HttpAuthenticationFilter.Type> Cache withURI:HTTP-METHOD
keys and authentication type as values. -
Constructor Summary
ConstructorsConstructorDescriptionHttpAuthenticationFilter
(HttpAuthenticationFeature.Mode mode, HttpAuthenticationFilter.Credentials basicCredentials, HttpAuthenticationFilter.Credentials digestCredentials, javax.ws.rs.core.Configuration configuration) Create a new filter instance. -
Method Summary
Modifier and TypeMethodDescriptionprivate static HttpAuthenticationFilter.Credentials
extractCredentials
(javax.ws.rs.client.ClientRequestContext request, HttpAuthenticationFilter.Type type) void
filter
(javax.ws.rs.client.ClientRequestContext request) void
filter
(javax.ws.rs.client.ClientRequestContext request, javax.ws.rs.client.ClientResponseContext response) private String
getCacheKey
(javax.ws.rs.client.ClientRequestContext request) (package private) static HttpAuthenticationFilter.Credentials
getCredentials
(javax.ws.rs.client.ClientRequestContext request, HttpAuthenticationFilter.Credentials defaultCredentials, HttpAuthenticationFilter.Type type) Get credentials actual for the current request.private int
getMaximumCacheLimit
(javax.ws.rs.core.Configuration configuration) (package private) static boolean
repeatRequest
(javax.ws.rs.client.ClientRequestContext request, javax.ws.rs.client.ClientResponseContext response, String newAuthorizationHeader) Repeat therequest
with providednewAuthorizationHeader
and update theresponse
with newest response data.private void
updateCache
(javax.ws.rs.client.ClientRequestContext request, boolean success, HttpAuthenticationFilter.Type operation)
-
Field Details
-
REQUEST_PROPERTY_FILTER_REUSED
- See Also:
-
REQUEST_PROPERTY_OPERATION
- See Also:
-
CHARACTER_SET
Encoding used for authentication calculations. -
mode
-
uriCache
Cache withURI:HTTP-METHOD
keys and authentication type as values. Contains successful authentications already performed by the filter. -
digestAuth
-
basicAuth
-
MAXIMUM_DIGEST_CACHE_SIZE
private static final int MAXIMUM_DIGEST_CACHE_SIZE- See Also:
-
-
Constructor Details
-
HttpAuthenticationFilter
HttpAuthenticationFilter(HttpAuthenticationFeature.Mode mode, HttpAuthenticationFilter.Credentials basicCredentials, HttpAuthenticationFilter.Credentials digestCredentials, javax.ws.rs.core.Configuration configuration) Create a new filter instance.- Parameters:
mode
- Mode.basicCredentials
- Basic credentials (can benull
if this filter does not work in the basic mode or if no default credentials are defined).digestCredentials
- Digest credentials (can benull
if this filter does not work in the digest mode or if no default credentials are defined).configuration
- Configuration (non-null
).
-
-
Method Details
-
getMaximumCacheLimit
private int getMaximumCacheLimit(javax.ws.rs.core.Configuration configuration) -
filter
- Specified by:
filter
in interfacejavax.ws.rs.client.ClientRequestFilter
- Throws:
IOException
-
filter
public void filter(javax.ws.rs.client.ClientRequestContext request, javax.ws.rs.client.ClientResponseContext response) throws IOException - Specified by:
filter
in interfacejavax.ws.rs.client.ClientResponseFilter
- Throws:
IOException
-
getCacheKey
-
updateCache
private void updateCache(javax.ws.rs.client.ClientRequestContext request, boolean success, HttpAuthenticationFilter.Type operation) -
repeatRequest
static boolean repeatRequest(javax.ws.rs.client.ClientRequestContext request, javax.ws.rs.client.ClientResponseContext response, String newAuthorizationHeader) Repeat therequest
with providednewAuthorizationHeader
and update theresponse
with newest response data.- Parameters:
request
- Request context.response
- Response context (will be updated with the new response data).newAuthorizationHeader
-Authorization
header that should be added to the new request.- Returns:
true
is the authentication was successful (true
if 401 response code was not returned;false
otherwise).
-
extractCredentials
private static HttpAuthenticationFilter.Credentials extractCredentials(javax.ws.rs.client.ClientRequestContext request, HttpAuthenticationFilter.Type type) -
getCredentials
static HttpAuthenticationFilter.Credentials getCredentials(javax.ws.rs.client.ClientRequestContext request, HttpAuthenticationFilter.Credentials defaultCredentials, HttpAuthenticationFilter.Type type) Get credentials actual for the current request. Priorities in credentials selection are the following:- Basic/digest specific credentials defined in the request properties
- Common credentials defined in the request properties
defaultCredentials
- Parameters:
request
- Request from which credentials should be extracted.defaultCredentials
- Default credentials (can benull
).type
- Type of requested credentials.- Returns:
- Credentials or
null
if no credentials are found anddefaultCredentials
arenull
. - Throws:
RequestAuthenticationException
- in case theusername
orpassword
is invalid.
-