In un client Savon che usa HTTPI, il proxy fa parte delle opzioni del client. Si applica quando si recupera un WSDL remoto e quando si invia la richiesta SOAP.

client = Savon.client(
  wsdl: 'https://service.example/soap?wsdl',
  proxy: ENV.fetch('SOAP_PROXY_URL'),
  open_timeout: 5,
  read_timeout: 15
)

L'esempio presuppone il trasporto HTTPI. Fornisci un URL del proxy approvato tramite l'ambiente. Per un test SOAP pubblico che consente un intermediario HTTP non autenticato, un candidato della lista di proxy HTTP può fornire quell'URL; tieni separate le decisioni di autenticazione del servizio e del proxy. Se il metodo di autenticazione supportato usa credenziali nell'URL, codifica i caratteri riservati in quelle credenziali e tieni l'URL risultante fuori dai log.

Savon le chiama «opzioni globali», ma sono locali a una singola istanza di client. Un altro client costruito altrove non eredita automaticamente il proxy.

Controlla il trasporto installato prima di riutilizzare lo snippet. La documentazione attuale di Savon assegna queste opzioni a HTTPI; il trasporto Faraday ha la propria interfaccia di configurazione tramite client.faraday e rifiuta queste opzioni specifiche di HTTPI. Configura il trasporto scelto invece di mescolare le due interfacce.

Tieni l'account del proxy separato dalle credenziali del servizio SOAP e dai valori WS-Security. Il 407 del proxy, la richiesta di accesso HTTP del servizio e un errore SOAP indicano scambi diversi. Il recupero del WSDL può fallire prima ancora che il client abbia eseguito un'operazione applicativa.

Articoli correlati