DirectoryBrowserSupport.SCP Problem

某天更新Jenkins後,RobotFramework的報表無法完整呈現,像CSS不見、javascript無法執行還有圖片無法顯示等。這問題是由於Content Security Policy 所造成的,必須設定Jenkins變數去解決。

首先到Script Console: %JENKINS_URL%/script中,執行以下命令確認你目前的policy:

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

確認需要打開的項目後,執行以下指令去設定新的policy(以下是我們的範例):

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","default-src 'unsafe-inline' 'unsafe-eval' img-src * data:;")

在有問題的網頁要清除網頁暫存後重新整理,應該就可以看到你要的內容。而啟動設定要記得改/etc/sysconfig/jenkins:

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xloggc:/opt/jenkins/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'unsafe-inline' 'unsafe-eval' img-src \"*\" data:;\""

(: \“*\”的寫法還沒試驗過,已知直接寫*會有問題。)