解决Jenkins报告在浏览器无法显示问题

在使用jenkins定时启动并收集测试报告的过程中,发现在jenkins上配置的HTML Report打开之后样式不对,页面一片空白:

打开开发者模式,发现页面有很多脚本报错,提示有很多资源文件被禁止加载了,百度之后,发现这个是jenkins的安全策略设置,默认的设置为:

sandbox; default-src 'none'; img-src 'self'; style-src 'self';
具体规定是:

不允许JavaScript

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

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

不允许从其他网站图片

不允许框架

不允许web字体

不允许XHR / AJAX等。
解决的方案就是放松些安全策略这。

方法一:可以在JenkinsJenkins Script Console(脚本命令行)里设置如下:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP",  "script-src 'unsafe-inline'")

点击运行,点几次,看到下图的结果之后,设置后,再去刷新report页面,测试报告显示正常


这种是一种临时方案,jenkins的Tomcat重启之后,就失效了。

方法二:在jenkins的启动文件catalina设置如下:

CATALINA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self'; style-src 'self' 'unsafe-inline' www.google.com ajax.googleapis.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' www.google.com; img-src 'self' data:; child-src 'self'\""
重启Tomcat,重新构建,就OK了


附Jenikns其他策略设置:

设置自定义:

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")
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值