Jenkins API访问被拒绝

时间:2019-03-13 10:33:20

标签: php jenkins

我正在尝试通过Jenkins API将WordPress网站连接到我的工作Jenkins。即使我看到很多帖子并尝试过,我仍然无法使我的Jenkins API正常工作。

所以我有一个工作在http://localhost:9090的Jenkins在Test中运行。

我使用用户名和密码在proxy:8080上配置了Jenkins的HTTP代理。当我在詹金斯(Jenkins)中验证代理时,就成功了。

詹金斯也告诉我,我的令牌是never used

关于我的API,我有:

function getLastBuildStatus($url, $jobName, $username, $api_token){
    $password = 'xxxxx';
    $ch = initCurl($username, $api_token); //see function downside

    curl_setopt($ch, CURLOPT_URL, $url . '/job/' . $jobName . '/lastBuild/api/json');
    curl_setopt($ch, CURLOPT_PROXY, 'http://proxy:8080');
    curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); 

    $result = executeCurl($ch);
    $json = json_decode($result);
    var_dump ($result);
    if($json){
        return $json->result;
    }
    else {
        return -1;
    }

function initCurl($username, $api_token){
    $ch = curl_init();
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); 
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false ); 
    curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $api_token); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    return $ch;
}

无论有没有代理,我都遇到Access Denied错误。我想念什么吗?

编辑1

我为Jenkins代理反向添加了httpd.conf规则。仍然是相同的错误,但可能需要更深入的了解。

ProxyPass         /  http://localhost:9090/ nocanon
ProxyPassReverse  /  http://localhost:9090/
ProxyRequests     Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:9090/*>
  Order deny,allow
  Allow from all
</Proxy>

编辑2

好!所以我可以通过命令行使其工作。输入该命令后,我可以访问数据:

curl  -v --noproxy localhost, http://localhost:9090/job/Test/api/json --user username:token

我不明白为什么,因为当我将curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);放入PHP文件时,我仍然得到403 error

但是,当我放curl_setopt($ch, CURLOPT_PROXY, '');时,我得到了Error:Failed to connect to localhost port 9090: Connection refused

0 个答案:

没有答案