Команда Curl для передачи строки сценария, чтобы получить значение крошки и выполнить мой groovy сценарий - PullRequest
0 голосов
/ 08 мая 2020

Я пробовал команду ниже, чтобы выполнить мой groovy в консоли сценариев jenkins, чтобы отключить CSRF в v2.222.2.

CRUMB = $ (curl -u "$ userName" 'https://jenkins-testcrumb.origin-elr-core-nonprod.com/crumbIssuer/api/xml?xpath=concat (// crumbRequestField , ":", // крошка)')

CRUMB_DISABLE = $ (curl "$ userName" "script = hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true" -H "$ CRUMB" https://jenkins-testcrumb.origin-elr-core-nonprod.com/scriptText)

Ошибка:

% Всего% Получено% Xferd Средняя скорость Время Время Время Текущая загрузка загрузки Общая затраченная оставшаяся скорость 100 462 100 462 0 0 1002 0 -: -: - -: -: - -: -: - 1004% Всего% получено% Xferd Средняя скорость Время Время Время Текущая загрузка загрузки Общая затраченная оставшаяся скорость 0 0 0 0 0 0 0 0 -: -: - -: -: - -: - : - 0curl: (6) Не удалось разрешить хост: kvinod5; Неизвестная ошибка curl: (6) Не удалось разрешить хост: script = hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true; Неизвестная ошибка 100 90 0 90 0 0 498 0 -: -: - -: -: - -: -: - 498

Кто-нибудь может мне помочь, как получить душу ??

1 Ответ

0 голосов
/ 08 мая 2020

Это не сработает, используйте вместо него токены Api . В документации по обновлению Jenkins указано:

Установите для системного свойства hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION значение true при запуске, чтобы отключить защиту CSRF, а также пользовательский интерфейс конфигурации для него. Это неподдерживаемая опция и может быть удалена в будущем.

Это предполагает, что она уже должна быть установлена ​​при запуске и не может быть изменена впоследствии.

Кроме того, есть Есть несколько проблем с тем, что вы пытаетесь достичь:

Ошибка говорит о том, что не удается найти хост: script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true;, что указывает на ваш второй вызов curl, который неверен и должен быть:

$(curl -u "$userName" --data-urlencode "script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true" -H "$CRUMB" https://jenkins-testcrumb.origin-elr-core-nonprod.com/scriptText)

Этот вызов все равно завершится ошибкой с недопустимой крошкой, поскольку крошки больше не принимаются для сценариев. Вы должны использовать токен api вместо .

Кроме того, чтобы установить свойство, вам нужно вызвать System.setProperty, поэтому ваш сценарий должен быть:

"script=System.setProperty('hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION', 'true'"

Но как упоминалось ранее, свойство проверяется во время запуска, поэтому изменение его позже не приведет к отключению системы Crumb.

...