如何在jenkins中的脚本代码中添加允许的方法签名

时间:2020-03-02 20:42:55

标签: http jenkins jenkins-pipeline

我正在运行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管理员可以决定是批准还是拒绝此签名。

它让我发疯...这里是什么问题?

2 个答案:

答案 0 :(得分:0)

您需要通过转到https://your.jenkins.url/scriptApproval/来批准在脚本中使用这些功能。每次您运行新脚本时,它都会转到未批准的第一件事,并且会失败,因此可能会持续一段时间。

答案 1 :(得分:0)

将HTTP代码移至global shared library

这些库被认为是“受信任的”:它们可以在以下库中运行任何方法 Java,Groovy,Jenkins内部API,Jenkins插件或第三方 库。这使您可以定义封装了 较高级别包装中的各个不安全API可以安全地从 任何管道。