【问题标题】:Jenkins HTML Publisher Plugin : allow script permission issueJenkins HTML Publisher Plugin:允许脚本权限问题
【发布时间】:2021-05-13 14:39:44
【问题描述】:

我正在尝试使用 Jenkins 中的 HTML 发布者插件报告我的 .html 文件 但是,由于 HTML Publisher 更新到 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

【问题讨论】:

    标签: jenkins content-security-policy


    【解决方案1】:

    我遇到了类似的问题,我发现并应用了以下解决方案:

    步骤:

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

    片段System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src *; style-src * http://* 'unsafe-inline' 'unsafe-eval'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'");

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

    jenkins 配置中的持久性注意事项: @RayKim 提到这不是一个可持续的变化。如果您想永久保留此更改,那么在这种情况下,您应该在 JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.remoting.Launcher.pingIntervalSec=0" 中设置此属性值

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

    【讨论】:

    • 重要的是要注意,这不会在重新启动后继续存在。要使其永久化,请更新(/etc/sysconfig/jenkins for CentOS)内部的“JENKINS_JAVA_OPTIONS”,而其他发行版可能位于(/etc/default/jenkins)中
    【解决方案2】:

    您可以尝试使用空白 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 实例上,它解决了我的报告问题。

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

    【讨论】:

    • 我解决了这个问题。您的回答是正确的,但应该另外删除浏览器缓存,谢谢
    【解决方案3】:

    对我来说上面没有用;

    我试过了

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

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

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

    -Dhudson.model.DirectoryBrowserSupport.CSP=""
    

    【讨论】:

      猜你喜欢
      • 2018-05-21
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2016-11-26
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多