Class ClientCredentialsTokenRequest

java.lang.Object
java.util.AbstractMap<String,Object>
com.google.api.client.util.GenericData
com.google.api.client.auth.oauth2.TokenRequest
com.google.api.client.auth.oauth2.ClientCredentialsTokenRequest
All Implemented Interfaces:
Cloneable, Map<String,Object>

public class ClientCredentialsTokenRequest extends TokenRequest
OAuth 2.0 request for an access token using only its client credentials as specified in Client Credentials Grant.

Use Credential to access protected resources from the resource server using the TokenResponse returned by TokenRequest.execute(). On error, it will instead throw TokenResponseException.

Sample usage:

  static void requestAccessToken() throws IOException {
    try {
      TokenResponse response =
          new ClientCredentialsTokenRequest(new NetHttpTransport(), new JacksonFactory(),
              new GenericUrl("https://server.example.com/token"))
              .setRedirectUri("https://client.example.com/rd")
              .setClientAuthentication(
                  new BasicAuthentication("s6BhdRkqt3", "7Fjfp0ZBr1KtDRbnfVdmIw")).execute();
      System.out.println("Access token: " + response.getAccessToken());
    } catch (TokenResponseException e) {
      if (e.getDetails() != null) {
        System.err.println("Error: " + e.getDetails().getError());
        if (e.getDetails().getErrorDescription() != null) {
          System.err.println(e.getDetails().getErrorDescription());
        }
        if (e.getDetails().getErrorUri() != null) {
          System.err.println(e.getDetails().getErrorUri());
        }
      } else {
        System.err.println(e.getMessage());
      }
    }
  }
 

Some OAuth 2.0 providers don't support BasicAuthentication but instead support ClientParametersAuthentication. In the above sample code, simply replace the class name and it will work the same way.

Implementation is not thread-safe.

Since:
1.14
  • Constructor Details

    • ClientCredentialsTokenRequest

      public ClientCredentialsTokenRequest(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory, com.google.api.client.http.GenericUrl tokenServerUrl)
      Parameters:
      transport - HTTP transport
      jsonFactory - JSON factory
      tokenServerUrl - token server URL
  • Method Details

    • setRequestInitializer

      public ClientCredentialsTokenRequest setRequestInitializer(com.google.api.client.http.HttpRequestInitializer requestInitializer)
      Description copied from class: TokenRequest
      Sets the HTTP request initializer or null for none.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      setRequestInitializer in class TokenRequest
    • setTokenServerUrl

      public ClientCredentialsTokenRequest setTokenServerUrl(com.google.api.client.http.GenericUrl tokenServerUrl)
      Description copied from class: TokenRequest
      Sets the token server URL.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      setTokenServerUrl in class TokenRequest
    • setScopes

      public ClientCredentialsTokenRequest setScopes(Collection<String> scopes)
      Description copied from class: TokenRequest
      Sets the list of scopes (as specified in Access Token Scope) or null for none.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      setScopes in class TokenRequest
      Parameters:
      scopes - collection of scopes to be joined by a space separator (or a single value containing multiple space-separated scopes)
    • setGrantType

      public ClientCredentialsTokenRequest setGrantType(String grantType)
      Description copied from class: TokenRequest
      Sets the grant type ("authorization_code", "password", "client_credentials", "refresh_token" or absolute URI of the extension grant type).

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      setGrantType in class TokenRequest
    • setClientAuthentication

      public ClientCredentialsTokenRequest setClientAuthentication(com.google.api.client.http.HttpExecuteInterceptor clientAuthentication)
      Description copied from class: TokenRequest
      Sets the client authentication or null for none.

      The recommended initializer by the specification is BasicAuthentication. All authorization servers must support that. A common alternative is ClientParametersAuthentication. An alternative client authentication method may be provided that implements HttpRequestInitializer.

      This HTTP request execute interceptor is guaranteed to be the last execute interceptor before the request is executed, and after any execute interceptor set by the TokenRequest.getRequestInitializer().

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      setClientAuthentication in class TokenRequest
    • set

      public ClientCredentialsTokenRequest set(String fieldName, Object value)
      Overrides:
      set in class TokenRequest