Jenkins HTML Publisher插件:与Jenkins 1.643没有外部链接
我有一个Jenkins的工作,在那里我生成一个HTML-Page作为后期buildstep,包含图像链接(HTML img标签)。 该HTML页面由HTMLPublisher插件为每个作业发布。
这一直很好。 但是因为我已经更新了Jenkins到1.643版本,所以当我点击发布的HTML页面时,我只看到一个空白页面。
我尝试了很多东西,发现了以下奇怪的行为:自更新以来,我无法将外部链接embedded到我发布的HTML页面中。 如果我从外部位置embedded图像(img src =“somelocation / xxx.jpg),图像将不会显示。
如果我使用Firefox检查HTML页面,我可以看到图像标记是灰色的,因为它是不可见的,但事实并非如此。
如果我embedded一个正常的超链接,指向一个外部位置,我可以看到显示的页面中的链接,但是当我点击它时,什么也没有发生。
就像jenkins在这方面不允许外部链接一样。
请帮我在这里:)
谢谢!
编辑:
感谢Dave Bacher,他给了我正确的提示。 看看这个页面,看看jenkins的新安全政策。
https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy#ConfiguringContentSecurityPolicy-Implementation
您必须放松规则,以便再次允许embedded外部图像。
为了testing它,只需在脚本控制台中键入以下内容:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;")
这将允许从任何外部网站embedded图像。
如果你在Ubuntu上运行Jenkins,并且想永久地设置它,只需编辑文件/ etc / default / jenkins即可。 在传递给java的#参数下添加以下行:
JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\""
您看到的问题可能与最近的安全修复有关 。 有关如何放松Jenkinsconfiguration的详细信息,请参阅configuration内容安全策略wiki页面 。
Jenkins发送的CSP头可以通过设置系统属性hudson.model.DirectoryBrowserSupport.CSP来修改:
如果它的值是空string,例如
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
那么标题将不会被发送。(警告!)这可能是非常不安全的,只能在查看完整的安全设置后才能使用。
您可以使用Jenkins脚本控制台尝试不同的设置。
同样在维基页面注释中,确保您已经升级到HTML Publisher 1.10(或更高版本)。
我知道原来的问题是针对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>
如果您使用的是Red Hat,那么更新JENKINS_JAVA_OPTIONS