Folosirea clientului HTTP conștient de proxy al Jenkins într-un plugin
Construiește clientul de ieșire al pluginului prin ajutorul public ProxyConfiguration al Jenkins, în loc să copiezi câmpurile de cont stocate.
Un plugin Jenkins care face o cerere HTTP de ieșire poate folosi ajutorul public de client conștient de proxy al Jenkins:
HttpClient client = ProxyConfiguration.newHttpClient();
HttpRequest request = ProxyConfiguration.newHttpRequestBuilder(
URI.create("https://service.example/status"))
.GET()
.build();
HttpResponse<Void> response = client.send(
request, HttpResponse.BodyHandlers.discarding());
Fragmentul folosește tipurile hudson.ProxyConfiguration, java.net.URI și java.net.http. Apelantul gestionează intrarea și ieșirea, precum și întreruperea, prin fluxul normal al pluginului. Handlerul de corp consumă și aruncă corpul răspunsului.
newHttpClient și interfața sa de constructor sunt disponibile din Jenkins 2.379. Într-un JVM de controller aplică configurația de proxy acceptată de Jenkins. Refolosește clientul în loc să creezi unul pentru fiecare cerere.
Astfel se evită copierea numelui și parolei proxy stocate în controller într-un transport configurat separat. Un client HTTP Java creat separat nu devine conștient de proxy doar pentru că interfața controllerului are o intrare de proxy.
Pentru cererile care trimit un antet Authorization către destinație, verifică limitarea documentată a proxy-ului autentificat pe Java 17 și versiunile ulterioare. Documentația semnalează în mod special această combinație; alegerea acestui ajutor nu elimină acea limitare a clientului.