http - 如何在詹金斯的脚本代码中添加允许的方法签名
问题描述
我正在运行 Jenkins 管道,我想添加一个 HTTP 发布请求。我想使用 Groovy/Java 本机代码(我不想用sh运行 curl,因为它非常易碎)
我在最后一步运行以下代码:
def builder = new groovy.json.JsonBuilder()
builder {
context 'branch_regression'
state stateStr
}
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("some-proxy.com", 912))
def post = new URL(config.CommitStatusUpdateURL).openConnection(proxy)
def message = builder.toString();
post.setRequestMethod("POST")
post.setRequestProperty("Authorization","Basic Some64BaseTokEAsfn")
post.setDoOutput(true)
post.setRequestProperty("Content-Type", "application/json")
def rawdata = message.getBytes("UTF-8")
def stream = post.getOutputStream()
stream.write(rawdata);
def postRC = post.getResponseCode();
println(postRC);
if(postRC.equals(200)) {
println(post.getInputStream().getText());
但我后来得到了
脚本不允许使用新的 java.net.InetSocketAddress java.lang.String int 管理员可以决定是批准还是拒绝这个签名。
带有链接批准此方法签名..我批准了它,我再次运行任务,然后我得到:
脚本不允许使用新的 java.net.Proxy java.net.Proxy$Type java.net.SocketAddress 管理员可以决定是批准还是拒绝这个签名。
它让我发疯......这里有什么问题?
解决方案
将 HTTP 代码移动到全局共享库中:
这些库被认为是“可信的”:它们可以运行 Java、Groovy、Jenkins 内部 API、Jenkins 插件或第三方库中的任何方法。这允许您定义库,这些库将单独的不安全 API 封装在更高级别的包装器中,以便在任何管道中安全使用。
推荐阅读
- reactjs - 在不同服务器上的 ReactJS 和 WIX Web 应用程序之间共享会话
- jquery - jquery sortable div拖放文本不能被ckeditor编辑
- ios - ios Swift 4 安装 PromiseKit json 解析错误
- android - 如何通过单击选项卡更改操作栏菜单按钮
- r - 使用 opencpu 将 .Rmd 文件编译为 .pdf 时出错
- python - 字典键的地址,值如何存储在 Python 中?
- r - 在 R 中加速拆分和合并数据帧行
- javascript - 如何在映射和检查条件后将新对象添加到数组中
- oracle - oracle 触发器精确提取返回超过请求的行数
- .net - 如何为字符串 [] 分配起始索引值