Puncte:0

Unde să instalați certificatul SSL pentru cererea CURL către API-ul extern

drapel kz

Aceasta este o situație puțin ciudată, dar sper că cineva de aici poate oferi ajutor. Am o aplicație Java moștenită care comunică cu un API extern terță parte (instrumente online UPS). Am primit recent o notificare că trebuie să ne actualizăm certificatul de server până pe 21 ianuarie, altfel tranzacțiile noastre nu vor mai funcționa.

Aplicația noastră trimite solicitări ssl către API-ul extern printr-o cerere curl (TREBE să fie curl datorită modului în care este proiectată această aplicație, este o poveste lungă și nu este cu adevărat relevantă aici). Ceea ce trebuie să știu este, unde trebuie să instalez certificatul? Avem un server web front-end (Apache), un backend jboss și un serviciu HAProxy între ele. Solicitarea curl este făcută de backend printr-o clasă groovy care execută o comandă curl. Pe care dintre acestea caută API-ul extern un certificat atunci când face o strângere de mână ssl?

În cazul în care vă ajută, iată cum arată metoda groovy:

public String[] requestTracking(String URL, String action, String trackingNumber, String access_license_number, String user_id, String parola) {

        Solicitare șir = """<?xml version="1.0"?>
            <AccessRequest xml:lang="en-US">
             <AccessLicenseNumber>${access_license_number}</AccessLicenseNumber>
            <UserId>${user_id}</UserId>
            <Parolă>${parolă}</Parolă>
            </AccessRequest>
            <?xml version="1.0"?>
            <TrackRequest xml:lang="en-US">
                <Solicitare>
                <TransactionReference>
                    <CustomerContext>Contextul meu</CustomerContext>
                    <XpciVersion>1.0001</XpciVersion>
                </TransactionReference>
                <RequestAction>Urmărire</RequestAction>
                <RequestOption>${action}</RequestOption>
                </Solicitare>
                <ShipmentIdentificationNumber>${trackingNumber}</ShipmentIdentificationNumber>
            </TrackRequest>
""";

        comanda def = [
            'SH',
            '-c',
            "curl -s -w '%{http_code}' '${url}' -X POST -d '" + cerere + "'"
        ];

        def proc = command.execute();
        def outputStream = new StringBuffer();
        def errorStream = new StringBuffer();
        proc.waitForProcessOutput(outputStream, errorStream);
        // System.out.println("eroare: " + errorStream.toString());
        Rezultat șir = outputStream.toString().trim();
        //divizează codul de stare html
        Cod șir = result.substring(result.length() -3);
        Corpul șirului = rezultat.substring(0,result.length() -3);

        String[] output = [cod, corp];
        ieșire returnată;
    }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.