Jenkins HTML Publisher插件:允许脚本权限问题

时间:2016-04-06 09:01:41

标签: jenkins content-security-policy

我试图在Jenkins中使用HTML发布商插件报告我的.html文件 但是,由于HTML发布者已更新为1.10版,因此无法发布HTML。

我收到错误消息:

Blocked script execution in '{mydomain}' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.

Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag.

我找到了这个文档: https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

它讲述了CSP。

我用arg运行Jenkins:

/usr/bin/java -Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; style-src 'unsafe-inline' *;script-src 'unsafe-inline' *; -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1 

但仍然遇到同样的错误。

我试过args:

 1. -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox; default-src 'self';"
 2. -Dhudson.model.DirectoryBrowserSupport.CSP=
 3. -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox; default-src *;"
 4. -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; default-src *;"    

.html位于:

{mydomain}/job/{job_name}/Doc/index.html

3 个答案:

答案 0 :(得分:9)

我遇到了类似的问题,我发现并在解决方案后应用。

  1. 转到Jenkins管理页面(以管理员身份登录)。
  2. 转到"脚本控制台"。
  3. 然后在脚本控制台中复制粘贴,使其工作。

    System.setProperty(" hudson.model.DirectoryBrowserSupport.CSP"," sandbox allow-scripts; default-src *; style-src * http:// *'不安全-inline'' unsafe-eval&#39 ;; script-src' self' http:// *' unsafe-inline'' unsafe-eval&# 39;&#34);

  4. link提供了有关我们在上述代码行中设置的每个参数的更多详细信息。

    @RayKim提到这不是一个可持续的变化。如果您想永久保留此更改,那么在这种情况下,您应该在JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.remoting.Launcher.pingIntervalSec=0"

    中设置此属性值

    设置此变量后,您必须重新启动Jenkins以加载新配置。

答案 1 :(得分:7)

您可以尝试使用空白CSP选项吗?

/usr/bin/java -Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP= -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

在我的Jenkins实例上,它解决了我的报告问题。

我知道这不是一个安全的选择,但我没有找到另一个解决方案:(

答案 2 :(得分:0)

对我来说上面没有用;

我试过了

管理 Jenkins -> 脚本控制台 复制粘贴这个

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

永久解决方案: 将以下内容添加到 /etc/default/jenkins 下的 JAVA_ARGS:

-Dhudson.model.DirectoryBrowserSupport.CSP=""