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

时间:2016-01-08 16:37:19

标签: jenkins jenkins-plugins

我有一个Jenkins工作,在那里我生成一个HTML-Page作为post buildstep,包含一个图像链接(HTML img标签)。 HTML页面由每个作业的HTMLPublisher插件发布。

这一直很有效。但是,由于我已将Jenkins更新为1.643版本,因此当我单击已发布的HTML页面时,我只看到一个空白页面。

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

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

如果我嵌入了一个指向外部位置的普通超链接,我可以看到显示页面中的链接,但是当我点击它时,没有任何反应。

就像Jenkins在这种情况下不允许外部链接。

请在这里帮助我:)

谢谢!

修改

感谢Dave Bacher,他给了我正确的提示。 看看这个页面看Jenkins'新的安全政策。

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

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

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

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

这将允许从任何外部网站嵌入图像。

如果您在Ubuntu上运行Jenkins并且想要永久设置它,只需编辑文件/ etc / default / jenkins。在传递给java的#参数下添加以下行:

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

3 个答案:

答案 0 :(得分:10)

您看到的问题可能与最近security fixes有关。有关如何放松Jenkins配置的详细信息,请参阅Configuring Content Security Policy wiki page

  

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

     

如果其值为空字符串,例如java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war然后根本不会发送标题。

     

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

您可以使用Jenkins Script Console尝试不同的设置。

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

答案 1 :(得分:3)

我知道最初的问题是针对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>

答案 2 :(得分:0)

如果您使用的是Red Hat,请更新JENKINS_JAVA_OPTIONS