Autenticazione proxy di base per una richiesta REST Assured
Usate ProxySpecification per l'indirizzo e l'account dell'intermediario, lasciando la configurazione di fiducia al client HTTPS.
REST Assured dispone di una specifica proxy che trasporta insieme l'indirizzo e le credenziali dell'intermediario:
import static io.restassured.RestAssured.given;
import io.restassured.specification.ProxySpecification;
var proxy = ProxySpecification.host("proxy.example")
.withPort(8080)
.withScheme("http")
.withAuth(proxyUser, proxyPassword);
var request = given().proxy(proxy);L'applicazione fornisce proxyUser e proxyPassword dalla sua consueta fonte di credenziali. Il frammento costruisce una specifica di richiesta; invocate l'URL dell'API desiderata tramite request con il consueto codice di richiesta e verifica del test.
Lo schema http descrive l'endpoint del proxy. L'URL dell'API può restare HTTPS. Il meccanismo withAuth di REST Assured fornisce l'autenticazione proxy di base; non negozia ogni schema di autenticazione aziendale solo perché sono state fornite due stringhe.
Inserite le credenziali dell'API nella configurazione di autenticazione propria dell'API. Evitate di sostituire l'account del proxy con un'intestazione Authorization generica o con una password di servizio. In HTTPS l'autenticazione verso l'intermediario può servire durante l'instaurazione di CONNECT, prima che esista lo scambio HTTP con la destinazione.
Quando il guasto residuo è la fiducia nel certificato
Una richiesta CONNECT rifiutata e un errore di convalida del certificato TLS sono esiti diversi. Se l'autorità di certificazione richiesta e gestita dall'organizzazione manca nella configurazione di fiducia del client, procuratela tramite il canale amministrativo approvato e configurate il truststore del client di test.
REST Assured espone trustStore a questo scopo. Un truststore cambia quali emittenti il client HTTPS considera affidabili; non sceglie il proxy né fornisce le sue credenziali di accesso. Mantenete attiva la convalida del nome host e del certificato invece di usare un handshake accept-all per accettare qualunque certificato venga presentato.