我有一个詹金斯(Jenkins)工作,我在其中生成一个HTML页作为构建步骤,其中包含图像链接(HTML img标签)。该HTML页面由HTMLPublisher插件针对每个作业发布。
这一直很好。但是由于我已经将Jenkins更新为1.643版,所以当我单击发布的HTML页面时,我只会看到空白页面。
我已经尝试了很多方法,并发现了以下奇怪的行为:自更新以来,我无法将外部链接嵌入到发布的HTML页面中。如果我从外部位置嵌入图像(img src =“ somelocation / xxx.jpg),则不会显示该图像。
如果我使用Firefox检查HTML页面,则可以看到image标签是灰色的,就像它是不可见的一样,但不是。
如果我嵌入一个指向外部位置的普通超链接,则可以在显示的页面中看到该链接,但是当我单击它时,什么也没有发生。
就像詹金斯在这种情况下不允许外部链接。
请在这里帮助我:)
谢谢!
编辑:
感谢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 *;\""
您看到的问题可能与最近的安全修复程序有关。有关如何放松Jenkins配置的详细信息,请参见“ 配置内容安全策略Wiki”页面。
可以通过设置系统属性 hudson.model.DirectoryBrowserSupport.CSP 来修改Jenkins发送的CSP标头: 如果其值为空字符串,例如,java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war那么将根本不发送标头。 (警告!)这可能是非常不安全的,只有在检查了总体安全设置之后才能使用。
可以通过设置系统属性 hudson.model.DirectoryBrowserSupport.CSP 来修改Jenkins发送的CSP标头:
如果其值为空字符串,例如,java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war那么将根本不发送标头。
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
(警告!)这可能是非常不安全的,只有在检查了总体安全设置之后才能使用。
您可以使用Jenkins脚本控制台尝试不同的设置。
另外,作为Wiki页面的注释,请确保您已升级到HTML Publisher 1.10(或更高版本)。