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).
  • Field Details

  • 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 be null if this filter does not work in the basic mode or if no default credentials are defined).
      digestCredentials - Digest credentials (can be null 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

      public void filter(javax.ws.rs.client.ClientRequestContext request) throws IOException
      Specified by:
      filter in interface javax.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 interface javax.ws.rs.client.ClientResponseFilter
      Throws:
      IOException
    • getCacheKey

      private String getCacheKey(javax.ws.rs.client.ClientRequestContext request)
    • 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 the request with provided newAuthorizationHeader and update the response 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:
      1. Basic/digest specific credentials defined in the request properties
      2. Common credentials defined in the request properties
      3. defaultCredentials
      Parameters:
      request - Request from which credentials should be extracted.
      defaultCredentials - Default credentials (can be null).
      type - Type of requested credentials.
      Returns:
      Credentials or null if no credentials are found and defaultCredentials are null.
      Throws:
      RequestAuthenticationException - in case the username or password is invalid.