Χρήση του HTTP client του Jenkins με proxy σε ένα plugin
Κατασκευάστε τον εξερχόμενο client του plugin μέσω του δημόσιου βοηθήματος ProxyConfiguration του Jenkins αντί να αντιγράφετε αποθηκευμένα πεδία λογαριασμού.
Ένα plugin του Jenkins που κάνει εξερχόμενο αίτημα HTTP μπορεί να χρησιμοποιήσει το δημόσιο βοήθημα client με proxy του 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());
Το απόσπασμα χρησιμοποιεί τύπους hudson.ProxyConfiguration, java.net.URI και java.net.http. Ο καλών χειρίζεται την είσοδο και την έξοδο καθώς και τη διακοπή μέσω της κανονικής ροής του plugin. Ο χειριστής σώματος καταναλώνει και απορρίπτει το σώμα της απόκρισης.
Το newHttpClient και η διεπαφή κατασκευαστή του υπάρχουν από το Jenkins 2.379. Σε JVM ελεγκτή εφαρμόζουν τη υποστηριζόμενη διαμόρφωση proxy του Jenkins. Επαναχρησιμοποιήστε τον client αντί να δημιουργείτε νέο για κάθε αίτημα.
Έτσι αποφεύγεται η αντιγραφή του αποθηκευμένου ονόματος και κωδικού proxy του ελεγκτή σε ξεχωριστά διαμορφωμένη μεταφορά. Ένας Java HTTP client που δημιουργείται χωριστά δεν γίνεται client με proxy μόνο επειδή η διεπαφή του ελεγκτή έχει καταχώριση proxy.
Για αιτήματα που στέλνουν κεφαλίδα Authorization στον προορισμό, ελέγξτε τον τεκμηριωμένο περιορισμό πιστοποιημένου proxy σε Java 17 και νεότερη. Η τεκμηρίωση επισημαίνει ειδικά αυτόν τον συνδυασμό· η επιλογή αυτού του βοηθήματος δεν αίρει τον περιορισμό του client.