Jenkins2.2 firefox和chrome不显示测试报告解决办法

表现描述: 

jenkins版本2.2,运行测试生成测试报告后,在网页上查看时,ie显示正常,firefox和chrome显示一片空白

如图:


Content Security Policy: 不能处理未知的指令“sandbox” <未知>

Content Security Policy: 页面设置阻止读取位于 http://192.168.57.192/jenkins-2.2/job/test/HTML_Report/suites.html的一项资源("default-src 'none'")。 <未知>

Content Security Policy: 页面设置阻止读取位于 http://192.168.57.192/jenkins-2.2/job/test/HTML_Report/overview.html的一项资源("default-src 'none'")。

原因

Jenkins 1.641/1.625.3 在静态文件头中引入了Content-Security-Policy,在jenkins中具体为DirectoryBrowserSupport,它为保护jenkins的html/js,用户目录以及文档等,设置了非常严格的权限保护.(译自jenkins官网)

默认的设设置为

sandbox; default-src 'none'; img-src 'self'; style-src 'self';

这规则如下:

不允许JavaScript

不允许插件(对象/嵌入)

没有内联CSS或CSS允许从其他网站

不允许从其他网站图片

不允许框架

不允许web字体

不允许XHR / AJAX等。

放松规则:

方法一:用java启动jenkins.war的可以在启动命令中加参数 -Dhudson.model.DirectoryBrowserSupport.CSP=

如: java -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox; default-src 'unsafe-inline';" -jar jenkins.war

方法二:可以在jenkins的Jenkins Script Console(脚本命令行)里设置方法如下:

在系统管理->脚本命令行,在里面输入System.setProperty("hudson.model.DirectoryBrowserSupport.CSP",  "script-src 'unsafe-inline'"), 点击运行


设置后,再去刷新http report页面,测试报告显示正常.

常用的设置

设置一个自定义:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; default-src 'self';")

清除自定义:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

恢复默认设置:

System.clearProperty("hudson.model.DirectoryBrowserSupport.CSP")

查看当前设置:

System.getProperty("hudson.model.DirectoryBrowserSupport.CSP")

Jenkins CSP参考文档: https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

CSP参考文档: http://content-security-policy.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容