All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.precisely.TokenAuthenticator Maven / Gradle / Ivy

Go to download

Java SDK for accessing Precisely APIs which transform your business with new insights. Enrich and enhance your data, applications, business processes, and workflows with hundreds of Location and Identity datasets and APIs.

The newest version!
/**
 * Precisely APIs
 * Enhance & enrich your data, applications, business processes, and workflows with rich location, information, and identify APIs.
 *
 * OpenAPI spec version: 11.9.0
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.precisely;

import com.precisely.auth.OAuth;
import com.precisely.ApiClient;
import com.precisely.Configuration;
import com.precisely.ApiException;
import com.google.gson.Gson;
import okhttp3.*;

import java.io.IOException;
import java.net.Proxy;
import java.util.ArrayList;


@javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2022-01-04T15:16:42.948+05:30")

public class TokenAuthenticator implements Authenticator {

@Override
public Request authenticate(Route route, Response response) throws IOException{

        Request request=response.request();
        ApiClient defaultClient = Configuration.getDefaultApiClient();

        Gson gson = new Gson();
        Errors errors = null;
        try {
        errors = gson.fromJson(response.body().string(), Errors.class);
        } catch (IOException e) {
        e.printStackTrace();
        }

        for (Error error : errors.errors) {
            if (error.errorCode.toString().contentEquals("PB-APIM-ERR-1003")) {
            OAuth oAuth2Password = (OAuth) Configuration.getDefaultApiClient().getAuthentication("oAuth2Password");
                if (oAuth2Password.getApiKey()!=null && oAuth2Password.getSecret()!=null) {
                    try {
                    defaultClient.generateAndSetAccessToken(oAuth2Password.getApiKey(),oAuth2Password.getSecret());
                    // Add new header to rejected request and retry it
                    request= response.request().newBuilder()
                    .header("Authorization", "Bearer " + ((OAuth) defaultClient.getAuthentication("oAuth2Password")).getAccessToken())
                    .build();
                    } catch (ApiException e) {
                    throw  new IOException(e.getMessage());
                    }

                }
                else
                {
                throw  new IOException(error.errorCode.toString() +" "+error.errorDescription.toString());
                }
            }
            else
            {
            throw  new IOException(error.errorCode.toString() +" "+error.errorDescription.toString());
            }
        }

return request;
}

   


    public class Error
    {
        private String errorCode;

        public String getErrorCode() { return this.errorCode; }

        public void setErrorCode(String errorCode) { this.errorCode = errorCode; }

        private String errorDescription;

        public String getErrorDescription() { return this.errorDescription; }

        public void setErrorDescription(String errorDescription) { this.errorDescription = errorDescription; }
    }

    public class Errors
    {
    private ArrayList
     errors;

        public ArrayList
         getErrors() {
            return this.errors;
        }

        public void setErrors(ArrayList errors) {
            this.errors = errors;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy