作者:Zephery
个人网址:http://www.wenzhihuai.com
本文为作者原创,转载请注明出处:https://www.cnblogs.com/w1570631036/p/9861473.html
目录
一、在全局安全配置中
二、获取TOKEN
三、获取Jenkins-Crumb
四、值得注意的事
公司主要要开发自己的paas平台,集成了Jenkins,真的是遇到了很多很多困难,特别是在api调用的权限这一块,这里,把自己遇到的一些坑的解决方法做一下笔记吧。当然,首先要讲的,就是如何在开启安全的情况下进行API调用。
一、在全局安全配置中
1.1 启用安全
如果勾选不对,那么Jenkins有可能崩溃掉,亲身经历,之前一直没有勾选安全域,然后授权策略为登录用户可以做任何事,之后权限这一块就彻底崩溃了,重装了又重装,才知道,需要勾选安全域。

1.2 跨域
同时开启跨站请求伪造保护,Jenkins的一些API需要用到的。

二、获取TOKEN
2.1 TOKEN
Jenkins的用户token可以在用户的设置下面获得,但是这种方式如果需要重装Jenkins的话,就得重新修改一次配置文件

经过对Jenkins-client的抓包分析,token可以由username+":"+password,然后进行base64加密组成,之后在token前面加上"Basic "即可,代码如下:

三、获取Jenkins-Crumb
在远程API调用的时候,Jenkins对于某些接口的要求不仅限于Authorization,还必须要有Jenkins-Crumb,这个东西之前在进行获取的时候,有时候会变来变去,比如用curl命令和f12查看的时候发现不一致,实在受不了,感觉毫无规律可言,之后才发现上面的Authorization来直接调用接口获取的才是正确的,再然后想想,可能是之前调用api的时候,没有开启启用安全,再或者是有没有勾选上使用碎片算法。

另,附上curl查询Jenkins-Crumb的命令:
curl -s 'http://admin:yourtoken@jenkins-url/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'替换掉yourtoken和jenkins-url即可。
