【问题标题】:Sandbox is preventing me from formatting a string沙盒阻止我格式化字符串
【发布时间】:2015-11-06 18:46:22
【问题描述】:

我有一个简单的 groovy 脚本:

node ("master")
{
  echo "I am about to try to use String.format"
  def jjj = String.format("bob")
  echo jjj 
}

如果我将此脚本直接放入我的作业配置并运行它,它运行良好。

但是,如果我将该脚本放入一个文件中,然后通过“来自 SCM 的工作流脚本”加载该文件,我会收到错误

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified staticMethod java.lang.String format java.lang.String

我该如何解决这个问题?是否可以像“工作流脚本”一样关闭“来自 SCM 的工作流脚本”的沙箱?

或者是否有一些沙盒认可的方式在 groovy 中格式化字符串?

为什么它会阻止我首先格式化字符串?

【问题讨论】:

    标签: groovy jenkins-workflow


    【解决方案1】:

    我认为使用 来自 SCM 的工作流脚本

    时无法禁用沙盒

    但是您可以在此处批准使用:

    http://<jenkins_host>:<port>/scriptApproval/
    

    【讨论】:

    • 当您收到 unclassified 错误时,没有什么可批准的。这意味着脚本安全插件中存在错误。
    【解决方案2】:

    我该如何解决这个问题?

    可能(未经测试)

    String.format("bob", [])
    

    而不是使用可变参数。无论如何,您应该在 JIRA(组件script-security-plugin,标签workflow)中提交一个错误,并附上重现步骤。

    是否可以像关闭“工作流脚本”一样关闭“来自 SCM 的工作流脚本”的沙箱?

    否:JENKINS-28178

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 2015-04-27
      • 2021-09-09
      • 2017-10-21
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      相关资源
      最近更新 更多