解决Jenkins报告在浏览器无法显示问题
在使用jenkins定时启动并收集测试报告的过程中,发现在jenkins上配置的HTML Report打开之后样式不对,页面一片空白:打开开发者模式,发现页面有很多脚本报错,提示有很多资源文件被禁止加载了,百度之后,发现这个是jenkins的安全策略设置,默认的设置为:sandbox; default-src 'none'; img-src 'self'; style-src 'self'
·
在使用jenkins定时启动并收集测试报告的过程中,发现在jenkins上配置的HTML Report打开之后样式不对,页面一片空白:
打开开发者模式,发现页面有很多脚本报错,提示有很多资源文件被禁止加载了,百度之后,发现这个是jenkins的安全策略设置,默认的设置为:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
具体规定是:
不允许JavaScript
不允许插件(对象/嵌入)
没有内联CSS或CSS允许从其他网站
不允许从其他网站图片
不允许框架
不允许web字体
不允许XHR / AJAX等。
解决的方案就是放松些安全策略这。
方法一:可以在Jenkins的Jenkins 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")
更多推荐
已为社区贡献1条内容
所有评论(0)