2016-01-08 5 views
7

У меня есть работа Jenkins, где я создаю HTML-страницу как post buildstep, содержащую ссылку на изображение (HTML img tag). Эта HTML-страница публикуется модулем HTMLPublisher для каждого задания.Jenkins HTML Publisher Plugin: Нет внешних ссылок с Jenkins 1.643

Это всегда отлично работало. Но поскольку я обновил Jenkins до версии 1.643, я вижу только пустую страницу, когда я нажимаю опубликованную HTML-страницу.

Я пробовал много вещей и обнаружил следующее странное поведение: С момента обновления я не могу вставлять внешние ссылки в HTML-страницы, которые я публикую. Если я вставляю изображение из внешнего местоположения (img src = "somelocation/xxx.jpg), изображение не будет отображаться.

Если я просматриваю HTML-страницу с помощью Firefox, я вижу, что тег изображения greyed, как будто это было невидимо, но это не так.

Если я внедряю нормальную гиперссылку, указывающую на внешнее местоположение, я вижу ссылку на отображаемой странице, но когда я нажимаю на нее, ничего не происходит.

это как Дженкинс не допустит внешних ссылок в этом контексте.

Пожалуйста, помогите мне здесь :)

Спасибо!

Edit:

Благодаря Дэйв Bacher, он дал мне правильный намек. Посмотрите на эту страницу, чтобы увидеть новую политику безопасности Дженкинса.

https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy#ConfiguringContentSecurityPolicy-Implementation

Вы должны расслабить правила, так что вложение внешних изображений разрешено снова.

Для тестирования, просто введите в консоли сценария:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;") 

Это позволит встраивание изображения с любого внешнего веб-сайта.

Если вы запустите Jenkins на Ubuntu и хотите установить это навсегда, просто отредактируйте файл/etc/default/jenkins. Под # аргументов перейти на Java добавить следующую строку:

JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\"" 
+0

Спасибо за этой JAVA_ARGS линии - Я пытался, что и Tomcat не стал бы - не понял, что мне нужно поставить кавычки вокруг всего этого. – metaforge

ответ

9

Проблема вы видите, вероятно, связана с недавним security fixes. См. Configuring Content Security Policy wiki page для получения подробной информации о том, как расслабиться в конфигурации Дженкинса.

Заголовок СНТА послан Jenkins может быть изменен путем установки системного свойства hudson.model.DirectoryBrowserSupport.CSP:

Если его значение является пустой строкой, например java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war, тогда заголовок не будет отправлен вообще.

(Предупреждение!) Это потенциально очень опасно и может использоваться только после проверки общей настройки безопасности.

Вы можете поэкспериментировать с различными настройками, используя Jenkins Script Console.

Также, как и на страницах вики-страницы, убедитесь, что вы обновили до HTML Publisher 1.10 (или более поздней версии).

+0

Спасибо за информацию! Я попробую найти правильную настройку и комментарий здесь, если найду что-нибудь. – ReactiveMax

+0

Я попытался изменить настройку безопасности temporariliy с помощью Консоли скрипта, и он сработал. Вы должны изменить его так, чтобы вложение изображений с любого веб-сайта: System.setProperty («hudson.model.DirectoryBrowserSupport.CSP», «песочнице; IMG-Src *;») На сайте вы также упомянуть объясняет, как запустить jenkins.war через консоль, чтобы эта настройка была постоянно активной. В нашем случае мы установили Jenkins на Ubuntu в качестве сервиса, и мы не запускаем его вручную с консоли. На данный момент я ищу файл конфигурации или что-то в этом роде, где я могу постоянно менять эти изменения для службы. – ReactiveMax

+0

Для Ubuntu используйте _/etc/default/jenkins_, см. Также https: //wiki.jenkins-ci. org/display/JENKINS/Установка + Jenkins + on + Ubuntu –

0

Если вы используете Red Hat обновит JENKINS_JAVA_OPTIONS

+0

не работает для меня – devops

3

Я знаю, что первоначальный вопрос был для Linux, но это также будет помогать пользователям Windows ... Если у вас есть Дженкинс устанавливается в качестве службы (начиная с Дженкинс .exe), вам нужно будет изменить аргументы в jenkins.xml для сохранения этого свойства.

Если вы собираетесь использовать небезопасную опцию пуста, не забудьте поставить параметр в кавычки. Ниже мой пример строки из jenkins.xml:

<arguments>-Xrs -Xmx1048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle "-Dhudson.model.DirectoryBrowserSupport.CSP= " -jar "%BASE%\jenkins.war" --httpPort=8080</arguments> 
+0

Эквивалентная опция доступна для пользователей Linux в/etc/default/jenkins или/etc/sysconfig/jenkins. Добавить аргумент в переменную JAVA_ARGS – Antwane

Смежные вопросы