REST Assured té una especificació de proxy que porta l'adreça i les credencials de l'intermediari alhora:

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'aplicació proporciona proxyUser i proxyPassword des de la seva font habitual de credencials. El fragment construeix una especificació de petició; crideu l'URL d'API desitjada mitjançant request amb el codi habitual de petició i asserció del test.

L'esquema http descriu el punt final del proxy. L'URL de l'API pot continuar sent HTTPS. El mecanisme withAuth de REST Assured proporciona autenticació bàsica de proxy; no negocia tots els esquemes d'autenticació corporatius només perquè s'hagin facilitat dues cadenes.

Poseu les credencials de l'API a la configuració d'autenticació pròpia de l'API. Eviteu substituir el compte del proxy per una capçalera Authorization genèrica o per una contrasenya de servei. En HTTPS, pot caldre autenticació amb l'intermediari mentre s'estableix CONNECT, abans que existeixi l'intercanvi HTTP amb la destinació.

Quan la fallada restant és la confiança en el certificat

Un repte CONNECT rebutjat i un error de validació del certificat TLS són resultats diferents. Si el CA requerit i gestionat per l'organització falta a l'esquema de confiança del client, obteniu aquest CA pel canal administratiu aprovat i configureu el truststore del client de proves.

REST Assured exposa trustStore per a aquest propòsit. Un truststore canvia quins emissors confia el client HTTPS; no tria el proxy ni proporciona el seu inici de sessió. Mantingueu activada la validació del nom d'amfitrió i del certificat en lloc d'usar un handshake accept-all per recollir qualsevol certificat que es presenti.

Articles relacionats