Class UserCredentials

    • Field Detail

      • PARSE_ERROR_PREFIX

        private static final java.lang.String PARSE_ERROR_PREFIX
        See Also:
        Constant Field Values
      • clientId

        private final java.lang.String clientId
      • clientSecret

        private final java.lang.String clientSecret
      • refreshToken

        private final java.lang.String refreshToken
      • tokenServerUri

        private final java.net.URI tokenServerUri
      • transportFactoryClassName

        private final java.lang.String transportFactoryClassName
    • Method Detail

      • getMetricsCredentialType

        public CredentialTypeForMetrics getMetricsCredentialType()
        Description copied from class: Credentials
        Gets the credential type used for internal metrics header.

        The default is CredentialTypeForMetrics.DO_NOT_SEND. For a credential that is established to track for metrics, this default should be overridden.

        Overrides:
        getMetricsCredentialType in class Credentials
        Returns:
        a enum value for credential type
      • fromJson

        static UserCredentials fromJson​(java.util.Map<java.lang.String,​java.lang.Object> json,
                                        HttpTransportFactory transportFactory)
                                 throws java.io.IOException
        Returns user credentials defined by JSON contents using the format supported by the Cloud SDK.
        Parameters:
        json - a map from the JSON representing the credentials.
        transportFactory - HTTP transport factory, creates the transport used to get access tokens.
        Returns:
        the credentials defined by the JSON.
        Throws:
        java.io.IOException - if the credential cannot be created from the JSON.
      • fromStream

        public static UserCredentials fromStream​(java.io.InputStream credentialsStream)
                                          throws java.io.IOException
        Returns credentials defined by a JSON file stream using the format supported by the Cloud SDK.
        Parameters:
        credentialsStream - the stream with the credential definition.
        Returns:
        the credential defined by the credentialsStream.
        Throws:
        java.io.IOException - if the credential cannot be created from the stream.
      • fromStream

        public static UserCredentials fromStream​(java.io.InputStream credentialsStream,
                                                 HttpTransportFactory transportFactory)
                                          throws java.io.IOException
        Returns credentials defined by a JSON file stream using the format supported by the Cloud SDK.
        Parameters:
        credentialsStream - the stream with the credential definition.
        transportFactory - HTTP transport factory, creates the transport used to get access tokens.
        Returns:
        the credential defined by the credentialsStream.
        Throws:
        java.io.IOException - if the credential cannot be created from the stream.
      • refreshAccessToken

        public AccessToken refreshAccessToken()
                                       throws java.io.IOException
        Refreshes the OAuth2 access token by getting a new access token from the refresh token
        Overrides:
        refreshAccessToken in class OAuth2Credentials
        Returns:
        never
        Throws:
        java.io.IOException
      • idTokenWithAudience

        public IdToken idTokenWithAudience​(java.lang.String targetAudience,
                                           java.util.List<IdTokenProvider.Option> options)
                                    throws java.io.IOException
        Returns a Google ID Token from the refresh token response.
        Specified by:
        idTokenWithAudience in interface IdTokenProvider
        Parameters:
        targetAudience - This can't be used for UserCredentials.
        options - list of Credential specific options for the token. Currently unused for UserCredentials.
        Returns:
        IdToken object which includes the raw id_token, expiration and audience
        Throws:
        java.io.IOException - if the attempt to get an IdToken failed
      • getClientId

        public final java.lang.String getClientId()
        Returns client ID of the credential from the console.
        Returns:
        client ID
      • getClientSecret

        public final java.lang.String getClientSecret()
        Returns client secret of the credential from the console.
        Returns:
        client secret
      • getRefreshToken

        public final java.lang.String getRefreshToken()
        Returns the refresh token resulting from a OAuth2 consent flow.
        Returns:
        refresh token
      • doRefreshAccessToken

        private com.google.api.client.util.GenericData doRefreshAccessToken()
                                                                     throws java.io.IOException
        Does refresh access token request
        Returns:
        Refresh token response data
        Throws:
        java.io.IOException
      • getUserCredentialsStream

        private java.io.InputStream getUserCredentialsStream()
                                                      throws java.io.IOException
        Returns the instance of InputStream containing the following user credentials in JSON format: - RefreshToken - ClientId - ClientSecret - ServerTokenUri
        Returns:
        user credentials stream
        Throws:
        java.io.IOException
      • save

        public void save​(java.lang.String filePath)
                  throws java.io.IOException
        Saves the end user credentials into the given file path.
        Parameters:
        filePath - Path to file where to store the credentials
        Throws:
        java.io.IOException - An error storing the credentials.
      • readObject

        private void readObject​(java.io.ObjectInputStream input)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException