Jenkins Workflow插件的以下脚本:
def mapping = readFile 'a file'
mapping.eachLine {
def line = it.tokenize('|')
sh "${line[1]}"
}
需要脚本批准:
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachLine java.lang.String java.lang.String
为了让脚本成功运行,必须尝试构建,必须授予手动批准,然后必须再次尝试其他构建,依此类推。
对于大型脚本,保持白名单方法是一个相当繁琐的过程。
是否有一些groovy方法的子集不需要脚本批准和/或白名单?
答案 0 :(得分:5)
你需要批准新出现的方法。
Script Security插件附带了一些已列入白名单的方法。您在此处列出的方法尚未实现。 JENKINS-25804默认跟踪将白名单常规计算方法列入白名单的愿望。
请注意,如果您使用来自SCM 脚本源的 Groovy CPS DSL,则有意选择禁用沙箱模式,即使用整个脚本批准模式。这是因为管理员需要在每次提交的编辑后批准整个脚本,无论多么微不足道。相比之下,使用 Groovy CPS DSL 源,管理员进行的每次编辑都会立即记录为已批准,而无需单独执行。