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/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容