"脚本不允许使用staticMethod ..."但没有待签名批准

时间:2018-04-12 15:50:19

标签: jenkins-pipeline

在我的管道脚本中,我收到错误org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods drop java.util.List int

到目前为止,这么好。但是当我进入ScriptApproval页面时,没有待签名的批准。

奇怪的是,在不同的Jenkins系统上,当我运行相同的命令时,它将它添加到挂起的脚本批准中,我能够正常使用它。

有没有办法

  1. 强制它将该功能添加为待处理脚本批准?
  2. 手动将其添加到已批准的脚本列表中?

2 个答案:

答案 0 :(得分:1)

我也一样,您的管道是多分支的吗?
我的是,我通过以下操作解决了这个问题:
如果您还没有创建一个虚拟管道,则将方法调用“ org.codehaus.groovy.runtime.DefaultGroovyMethods drop”添加到另一条非多分支管道中。
运行管道,它现在将显示在脚本批准部分下。
显然,此错误仅影响多分支管道。 希望它仍然有用。

答案 1 :(得分:0)

我也遇到过类似的问题,詹金斯没有向脚本批准页面添加任何静态方法。

认为这是Jenkins和安全性插件的某种错误,因为我以前从未遇到过这种行为。解决方法是,我必须在https://JENKINS_URL/script

的“脚本控制台”页面中手动执行下一个脚本
def scriptApproval = org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval.get()
scriptApproval.approveSignature("staticMethod jenkins.model.Jenkins getInstance")
scriptApproval.save()