gpt4 book ai didi

jenkins - Groovy 沙箱阻止工作流程-cps-global-lib-plugin 中的类

转载 作者:行者123 更新时间:2023-12-02 14:29:36 30 4
gpt4 key购买 nike

我们有 https://github.com/jenkinsci/workflow-cps-global-lib-plugin正在使用中,它用于(git repo)为管道作业创建通用助手。当我尝试使用工作流程库存储库中的类时,我遇到了 groovy 沙箱的问题。

我遇到了这个异常:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified new <path_to_my_class>

通过阅读该插件的文档,我得到的印象是这个公共(public)存储库是受信任的,并且其中定义的类不会被沙箱化。

此外,似乎如果类在源文件中定义时没有“class”关键字,即仅实现通过沙箱安全检查的方法,否则不会。但是,如何在不定义类和构造函数的情况下实现参数化构造函数呢?

我想让以下用例在不被沙箱阻止的情况下工作。

在“/org/mylib”目录中,我使用以下实现定义了类 MyClass.groovy。

package org.mylib

class MyClass implements Serializable {
MyClass(String someString) {
this.data = someString
}

String data

String data() {
return this.data
}
}

为什么它在沙箱中运行以及我如何解决它?

最佳答案

如果您没有看到旁边的批准按钮,则表示没有阻止。它很可能无法找到它。

实际documentation mentioned on the plugin site声明布局是:

(root)
+- src # Groovy source files
| +- org
| +- foo
| +- Bar.groovy # for org.foo.Bar class
+- vars
| +- foo.groovy # for global 'foo' variable
| +- foo.txt # help for 'foo' variable
+- resources # resource files (external libraries only)
| +- org
| +- foo
| +- bar.json # static helper data for org.foo.Bar

所以我目前的猜测是你应该将其移动到 src 目录。

关于jenkins - Groovy 沙箱阻止工作流程-cps-global-lib-plugin 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41892317/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com