Använd Jenkins proxy-medvetna HTTP-klient i ett plugin
Bygg pluginets utgående klient via Jenkins publika ProxyConfiguration-hjälpare i stället för att kopiera sparade kontofält.
Ett Jenkins-plugin som gör en utgående HTTP-förfrågan kan använda Jenkins publika proxy-medvetna klienthjälpare:
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());
Utdraget använder typerna hudson.ProxyConfiguration, java.net.URI och java.net.http. Anroparen hanterar in- och utdata samt avbrott via sitt vanliga pluginflöde. Kroppshanteraren läser och kastar svarskroppen.
newHttpClient och dess builder-gränssnitt finns sedan Jenkins 2.379. I en kontroller-JVM tillämpar de den proxykonfiguration som Jenkins stöder. Återanvänd klienten i stället för att skapa en ny för varje förfrågan.
Det undviker att kopiera kontrollerns sparade proxynamn och lösenord till en transport som konfigurerats separat. En Java HTTP-klient som skapas separat blir inte proxy-medveten bara för att kontrollerns gränssnitt har en proxy-post.
För förfrågningar som skickar en Authorization-header till målet, granska den dokumenterade begränsningen för autentiserad proxy på Java 17 och senare. Dokumentationen pekar särskilt ut den kombinationen; valet av denna hjälpare tar inte bort den klientbegränsningen.