Использование прокси-ориентированного HTTP-клиента Jenkins в плагине
Создавайте исходящий клиент плагина через публичный помощник ProxyConfiguration в Jenkins вместо копирования сохранённых полей учётной записи.
Плагин Jenkins, выполняющий исходящий HTTP-запрос, может использовать публичный прокси-ориентированный помощник клиента 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. Вызывающий код обрабатывает ввод-вывод и прерывание через обычный поток плагина. Обработчик тела принимает тело ответа и отбрасывает его.
newHttpClient и его интерфейс построителя доступны начиная с Jenkins 2.379. В JVM контроллера они применяют поддерживаемую Jenkins конфигурацию прокси. Используйте клиент повторно, а не создавайте новый для каждого запроса.
Это избавляет от копирования сохранённых в контроллере имени и пароля прокси в отдельно настроенный транспорт. Отдельно созданный HTTP-клиент Java не становится прокси-ориентированным только потому, что в интерфейсе контроллера есть запись прокси.
Для запросов, передающих заголовок Authorization получателю, изучите документированное ограничение для аутентифицированного прокси в Java 17 и новее. Документация особо указывает на это сочетание; выбор этого помощника не снимает указанное ограничение клиента.