Пожалуйста, уточните: REST API Jenkins с CSRF нужны крошки для пользователя: ПАРОЛЬ, но не для пользователя: API_TOKEN? - PullRequest
0 голосов
/ 15 мая 2019

Я обнаружил, что с включенной защитой CSRF я могу либо отправить запрос на публикацию с заголовком крошки и использовать username:PASSWORD для основного заголовка аутентификации:

String basic = "<username>:<PASSWORD>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Jenkins-Crumb", "<CRUMB>");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();

или используйте username:APITOKEN для основного заголовка аутентификации, в этом случае заголовок крошки не нужен:

String basic = "<username>:<APITOKEN>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();

Вопрос:

  • Это предполагаемое использование (имя пользователя: APITOKEN без заголовка крошки)? Документация и существующие ответы SO расплывчаты.

Использование Jenkins 2.164.3 и Java 8.

...