Class AuthorizationCodeTokenRequest

  • All Implemented Interfaces:
    java.lang.Cloneable, java.util.Map<java.lang.String,​java.lang.Object>

    public class AuthorizationCodeTokenRequest
    extends TokenRequest
    OAuth 2.0 request for an access token using an authorization code as specified in Access Token Request.

    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 AuthorizationCodeTokenRequest(new NetHttpTransport(), new JacksonFactory(),
                  new GenericUrl("https://server.example.com/token"), "SplxlOBeZQQYbYS6WxSbIA")
                  .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.7
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.google.api.client.util.GenericData

        com.google.api.client.util.GenericData.Flags
      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String code
      Authorization code received from the authorization server.
      private java.lang.String redirectUri
      Redirect URI parameter matching the redirect URI parameter in the authorization request or null for none.
    • Constructor Summary

      Constructors 
      Constructor Description
      AuthorizationCodeTokenRequest​(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory, com.google.api.client.http.GenericUrl tokenServerUrl, java.lang.String code)  
    • Field Detail

      • code

        private java.lang.String code
        Authorization code received from the authorization server.
      • redirectUri

        private java.lang.String redirectUri
        Redirect URI parameter matching the redirect URI parameter in the authorization request or null for none.
    • Constructor Detail

      • AuthorizationCodeTokenRequest

        public AuthorizationCodeTokenRequest​(com.google.api.client.http.HttpTransport transport,
                                             com.google.api.client.json.JsonFactory jsonFactory,
                                             com.google.api.client.http.GenericUrl tokenServerUrl,
                                             java.lang.String code)
        Parameters:
        transport - HTTP transport
        jsonFactory - JSON factory
        tokenServerUrl - token server URL
        code - authorization code generated by the authorization server
    • Method Detail

      • setRequestInitializer

        public AuthorizationCodeTokenRequest 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 AuthorizationCodeTokenRequest 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 AuthorizationCodeTokenRequest setScopes​(java.util.Collection<java.lang.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 AuthorizationCodeTokenRequest setGrantType​(java.lang.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 AuthorizationCodeTokenRequest 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
      • getCode

        public final java.lang.String getCode()
        Returns the authorization code generated by the authorization server.
      • setCode

        public AuthorizationCodeTokenRequest setCode​(java.lang.String code)
        Sets the authorization code generated by the authorization server.

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

      • getRedirectUri

        public final java.lang.String getRedirectUri()
        Returns the redirect URI parameter matching the redirect URI parameter in the authorization request or null for none.
      • setRedirectUri

        public AuthorizationCodeTokenRequest setRedirectUri​(java.lang.String redirectUri)
        Sets the redirect URI parameter matching the redirect URI parameter in the authorization request or null for none.

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