问题描述
我在openshift集群上有一个jenkins容器,我想使用Jenkins API和Openshift serviceAccounts以编程方式创建作业。当我调用Jenkins API创建商品时,提供面包屑时,我会收到“ 403没有有效的面包屑”。
首先,我使用openshift客户端收集serviceAccount api令牌:
TOKEN=$(oc get secret <serviceaccount secret name> -o=jsonpath={.data.token} | base64 -d)
然后,我使用此令牌通过Bearer授权对Jenkins进行API调用。对于这样的呼叫,它效果很好:
curl -XGET http://jenkins-route/job/myJob/config.xml -H "Authorization: Bearer ${TOKEN}" -o myJob.xml
但是当我调用CreateItem
API调用时,由于碎屑而失败。
CRUMB=$(curl -s http://jenkins-route/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb) -H "Authorization: Bearer ${TOKEN}")
// Jenkins-Crumb:XXXXX
curl -XPOST http://jenkins-route/createItem?name=myJobName \
--data-binary @config.xml \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type:application/xml" \
-H "${CRUMB}"
并且我不断收到“ 403请求中未包含有效面包屑”
我尝试对普通的jenkins用户执行相同的操作(因此,使用基本身份验证进行API调用)并且可以正常工作。我正在寻找一种使其与Bearer Token一起使用的方法。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)