【发布时间】:2016-01-08 16:37:18
【问题描述】:
我有一份 Jenkins 工作,我在其中生成一个 HTML 页面作为后期构建步骤,其中包含一个图像链接(HTML img 标记)。此 HTML 页面由 HTMLPublisher 插件针对每个作业发布。
这一直很有效。但由于我已将 Jenkins 更新到 v. 1.643,所以当我单击已发布的 HTML 页面时,我只会看到一个空白页面。
我尝试了很多东西,发现了以下奇怪的行为: 自更新以来,我无法将外部链接嵌入到我发布的 HTML 页面中。 如果我从外部位置 (img src="somelocation/xxx.jpg) 嵌入图像,则不会显示该图像。
如果我用 Firefox 检查 HTML 页面,我可以看到图像标签是灰色的,好像它是不可见的,但事实并非如此。
如果我嵌入一个普通的超链接,指向一个外部位置,我可以在显示的页面中看到该链接,但是当我点击它时,什么也没有发生。
就像 Jenkins 在这种情况下不允许外部链接一样。
请帮帮我:)
谢谢!
编辑:
感谢 Dave Bacher,他给了我正确的提示。 查看此页面以了解 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 *;\""
【问题讨论】:
-
感谢 JAVA_ARGS 行 - 我正在尝试,但 Tomcat 无法启动 - 没有意识到我需要在整个过程中加上引号。