403 Forbibben en Resto de llamadas API

DaviesTobi Alex:

Estoy escribiendo un pequeño programa en Java que hace una llamada de descanso a un punto final para verificar una identificación de referencia. He escrito este programa de dos maneras diferentes y cada trabajo cuando lo funciono de mi PC pero cuando despliego el archivo jar en la prueba Linux CentOs Server, aparece un 403 forbidden errordesde el punto final, así que pensé que tal vez la IP fue bloqueada y luego tratado lo mismo con el enrollamiento y funcionó perfectamente.

¿Cual podría ser el problema? no podía ser de error de la versión certificado SSL?

Camino 1:

public String sendGet(String id) {
    restTemplate = new RestTemplate();
    log.info("Authorization :::: {}", "Bearer " + this.getApiAuth());

    HttpHeaders headers = new HttpHeaders();

    headers.set("Authorization", "Bearer " + this.getApiAuth());

    List<MediaType> acceptableMediaTypes = new ArrayList<>();

    acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
    headers.setAccept(acceptableMediaTypes);
    headers.setContentType(MediaType.APPLICATION_JSON);

    HttpEntity<String> httpRequestEntity = new HttpEntity<>(headers);
    ResponseEntity<String> exchange = getRestTemplate().exchange(this.getUrl() + id, HttpMethod.GET, httpRequestEntity, String.class);

    log.info("Status Code :::: {}", exchange.getStatusCode());
    log.info("Status Code :::: {}", exchange.getBody());
    return exchange.getBody(); 
}

Vía 2:

 public String sendGet(String message) throws Exception {
    infoLogger.info("GOING HERE " + url + message);

    java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
    URL obj = new URL(url + message);
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

    con.setRequestMethod("GET");

    infoLogger.info("Setting Authorization: Bearer " + this.getApiAuth());
    con.setRequestProperty("Authorization", "Bearer " +this.getApiAuth());
    con.setRequestProperty("Content-Type", MediaType.APPLICATION_JSON_VALUE);
    con.setRequestProperty("accept", MediaType.APPLICATION_JSON_VALUE);

    int responseCode = con.getResponseCode();
    infoLogger.info("\nSending 'GET' request to URL : " + url);
    infoLogger.info("Response Code : " + responseCode);

    BufferedReader in = null;
    String inputLine;
    StringBuilder response = new StringBuilder();

    if ((200 <= con.getResponseCode()) && (con.getResponseCode() <= 299)) {
        if (con.getInputStream() != null) {
            in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        }
    } else if (con.getErrorStream() != null) {
        in = new BufferedReader(new InputStreamReader(con.getErrorStream()));
    } else {
        infoLogger.info("GOT NOTHING ");
    }

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();

    //print result
    System.out.println(response.toString());
    return response.toString();

}

Así que hice una .getResponseMessageque se le preguntó y me dio el siguiente error:

Acceso denegado | api.paystack.co utiliza para restringir Cloudflare accessbody {margin: 0; padding: 0} Por favor, activa las cookies.

Error 1010 Ray ID: 26/01/2019 07:12:17 • 49f12b9b9bb6c5fa UTC

Acceso denegado ¿Qué pasó?

El propietario de este sitio web (api.paystack.co) ha prohibido el acceso al usuario basado en la firma (49f12b9b9bb6c5fa-UA21) de su navegador.

Cloudflare Ray ID: 49f12b9b9bb6c5fa • Su IP: 104.248.9.123 • Rendimiento y seguridad mediante la Cloudflare

window._cf_translation = {}; `

Jens Dibbern:

El supplyer del servicio que está intentando acceder está utilizando CloudFlare. Están utilizando algún tipo de comprobación de integridad del navegador (ver https://support.cloudflare.com/hc/en-us/articles/200171806-Error-1010-The-owner-of-this-website-has-banned-your -Acceso a base-a-su-navegador-s-firma ).

Se puede cambiar la firma en el código Java:

con.setRequestProperty("User-Agent", "My own REST client");

Usted parece usar un JDK diferente en su PC que en su servidor CentOS, por lo que las firmas del Java HttpsURLConnection son diferentes. Son, por supuesto, diferente de rizo.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=215005&siteId=1
Recomendado
Clasificación