Class HttpCredentialsAdapter

java.lang.Object
com.google.auth.http.HttpCredentialsAdapter
All Implemented Interfaces:
com.google.api.client.http.HttpRequestInitializer, com.google.api.client.http.HttpUnsuccessfulResponseHandler

public class HttpCredentialsAdapter extends Object implements com.google.api.client.http.HttpRequestInitializer, com.google.api.client.http.HttpUnsuccessfulResponseHandler
A wrapper for using Credentials with the Google API Client Libraries for Java with Http.
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • INVALID_TOKEN_ERROR

      private static final Pattern INVALID_TOKEN_ERROR
      In case an abnormal HTTP response is received with WWW-Authenticate header, and its value contains this error pattern, we will try to refresh the token.
    • credentials

      private final Credentials credentials
  • Constructor Details

    • HttpCredentialsAdapter

      public HttpCredentialsAdapter(Credentials credentials)
      Parameters:
      credentials - Credentials instance to adapt for HTTP
  • Method Details

    • getCredentials

      public Credentials getCredentials()
      A getter for the credentials instance being used
    • initialize

      public void initialize(com.google.api.client.http.HttpRequest request) throws IOException

      Initialize the HTTP request prior to execution.

      Specified by:
      initialize in interface com.google.api.client.http.HttpRequestInitializer
      Parameters:
      request - HTTP request
      Throws:
      IOException
    • handleResponse

      public boolean handleResponse(com.google.api.client.http.HttpRequest request, com.google.api.client.http.HttpResponse response, boolean supportsRetry)

      Checks if WWW-Authenticate exists and contains a "Bearer" value (see rfc6750 section 3.1 for more details). If so, it refreshes the token in case the error code contains invalid_token. If there is no "Bearer" in WWW-Authenticate and the status code is HttpStatusCodes.STATUS_CODE_UNAUTHORIZED it refreshes the token. If the token refresh throws an I/O exception, this implementation will log the exception and return false.

      Specified by:
      handleResponse in interface com.google.api.client.http.HttpUnsuccessfulResponseHandler