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

BJ *_*Kim 9 jenkins content-security-policy

我试图.html在Jenkins中使用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.
Run Code Online (Sandbox Code Playgroud)

我找到了这个文档: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 
Run Code Online (Sandbox Code Playgroud)

但仍然有同样的错误.

我试过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 *;"    
Run Code Online (Sandbox Code Playgroud)

.html位于:

{mydomain}/job/{job_name}/Doc/index.html
Run Code Online (Sandbox Code Playgroud)

Bil*_*ins 10

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

  1. 转到Jenkins管理员页面(以管理员身份登录).
  2. 转到"脚本控制台".
  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'");

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

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

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


Bru*_*vit 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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我解决了这个问题 你的答案是正确的,但应另外删除浏览器缓存,谢谢 (2认同)