Jenkins HTML Publisher插件:没有与Jenkins 1.643的外部链接

Jenkins HTML Publisher插件:没有与Jenkins 1.643的外部链接,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我有一份Jenkins的工作,在那里我生成一个HTML页面作为后期构建步骤,其中包含一个图像链接(HTML img标记)。此HTML页面由HTMLPublisher插件为每个作业发布 这一直很有效。但自从我把Jenkins更新到v。1.643,单击已发布的HTML页面时,我只看到一个空白页面 我尝试了很多东西,发现了以下奇怪的行为: 由于更新,我无法将外部链接嵌入到我发布的HTML页面中。 如果我从外部位置嵌入图像(img src=“somelocation/xxx.jpg),图像将不会显示 如

我有一份Jenkins的工作,在那里我生成一个HTML页面作为后期构建步骤,其中包含一个图像链接(HTML img标记)。此HTML页面由HTMLPublisher插件为每个作业发布

这一直很有效。但自从我把Jenkins更新到v。1.643,单击已发布的HTML页面时,我只看到一个空白页面

我尝试了很多东西,发现了以下奇怪的行为: 由于更新,我无法将外部链接嵌入到我发布的HTML页面中。 如果我从外部位置嵌入图像(img src=“somelocation/xxx.jpg),图像将不会显示

如果我用Firefox检查HTML页面,我可以看到图像标签是灰色的,就像它是看不见的一样,但事实并非如此

如果我嵌入一个指向外部位置的普通超链接,我可以在显示的页面中看到该链接,但当我单击它时,什么也没有发生

詹金斯似乎不允许在这种情况下进行外部链接

请帮帮我:)

谢谢大家!

编辑:

多亏了戴夫·巴赫,他给了我正确的暗示。 查看此页面以查看Jenkins的新安全策略

您必须放宽规则,以便再次允许嵌入外部图像

要测试它,只需在脚本控制台中键入以下内容:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;")
这将允许嵌入来自任何外部网站的图像

如果您在Ubuntu上运行Jenkins,并且希望永久设置它,只需编辑文件/etc/default/Jenkins。在#arguments to pass to java下添加以下行:

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

您看到的问题可能与最近的有关。有关如何放松Jenkins配置的详细信息,请参阅

Jenkins发送的CSP头可以通过设置系统属性hudson.model.DirectoryBrowserSupport.CSP进行修改:

如果它的值是空字符串,例如,
java-Dhudson.model.DirectoryBrowserSupport.CSP=-jar jenkins.war
,则根本不会发送头

(警告!)这可能非常不安全,只能在检查整体安全设置后使用

您可以使用进行不同设置的实验


另外,正如wiki页面所述,请确保您已升级到HTML Publisher 1.10(或更高版本)。

如果您使用的是Red Hat,请更新
JENKINS_JAVA_OPTIONS
我知道最初的问题是针对Linux的,但这也将帮助Windows用户……如果您将JENKINS作为服务安装(从JENKINS.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>
-Xrs-Xmx1048m-XX:MaxPermSize=512m-Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle“-Dhudson.model.DirectoryBrowserSupport.CSP=“-jar”%BASE%\jenkins.war”-httpPort=8080

谢谢您提供的信息!如果我发现了什么,我将尝试在此处找到正确的设置和注释。我已尝试使用脚本控制台临时更改安全设置,并且成功了。您必须这样更改它以允许嵌入来自任何网站的图像:System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”沙箱;img src*;”)您提到的网站还解释了如何通过控制台启动jenkins.war,使此设置永久处于活动状态。在我们的例子中,我们在Ubuntu上安装了jenkins作为一项服务,而不是从控制台手动启动它。目前,我正在寻找一个配置文件或其他东西,在那里我可以将这些更改永久地放在serviceFor Ubun上tu,使用/etc/default/jenkins,另请参阅,谢谢你,David!我编辑了公开帖子并整合了你的答案。@ReactiveMax感谢你给我评分,但你不应该。问题应该是问题,答案应该是答案。感谢JAVA_ARGS行-我正在尝试,Tomcat不会开始-没有意识到我需要放引号可以在/etc/default/jenkins或/etc/sysconfig/jenkins中找到Linux用户的等效选项