Дженкинс API Крошка 403 - PullRequest
       6

Дженкинс API Крошка 403

1 голос
/ 05 апреля 2020

Я использую Curl для отправки запросов к API Jenkins - что делается через https. Jenkins настроен в IIS с использованием обратного прокси-сервера в соответствии с рекомендациями Jenkins. Сайт Jenkins имеет windows аутентификацию. Мне нужно передать Crumb с моим запросом - ошибка 403.

Однако, когда я запрашиваю Crumb, он заявляет, что мне нужно предоставить Crumb? Мне нужно, чтобы это работало через командную строку / командный файл.

Спасибо

1 Ответ

1 голос
/ 05 апреля 2020

Чтобы иметь возможность делать вызовы API для Jenkins, вам нужно сгенерировать токен для данного пользователя в Jenkins. Например, давайте сделаем это с пользователем Foo. Вам нужно будет войти в систему с помощью пользователя Foo, а затем в веб-интерфейсе пользователя: Foo (right upper corner) > Configure > API token > Add new token.

Когда ваш токен где-то сохранен, вы можете получить крошку с помощью этой команды:

curl --user Foo:<token> 'https://www.mysuperduperjenkins.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'

То, что он делает в основном, - это получение XML от Дженкинса, содержащего хлебную крошку, и получение элемента c, где находится хлебная крошка. Результат команды должен быть примерно таким: *curl -u 'Foo:<token>' -X POST --data '<parameters>' -H '$breadcrumb' www.mysuperduperjenkins.com

В этом локоне мы используем крошку в качестве заголовка, полученного на предыдущем шаге. Если крошка верна, вы сможете выполнить запрос без ошибок 403/401.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...