验证脚本客户

要使脚本客户机(如wget)调用需要授权的操作(如安排构建),可以使用HTTP BASIC身份验证来指定用户名和API令牌。

Jenkins的早期版本要求您指定您的真必威国际有限公司实密码,并且只有当您的安全领域是基于密码的(例如,OpenID、Crowd和CAS插件验证您没有密码,所以您根本就没有任何密码!)仍然支持指定真实的密码,但不建议这样做,因为存在泄露密码的风险,而且人类倾向于在不同的地方重复使用相同的密码。

API令牌在您的个人配置页面中可用。在每个页面的右上角点击你的名字,然后点击“配置”来查看你的API令牌。(网址$ root /我/配置是一条很好的捷径。您还可以从这里更改API令牌。

注意,Jenkins必威国际有限公司不进行任何授权协商。例如,它会立即返回一个403 (Forbidden)响应,而不是401 (Unauthorized)响应,所以请确保从第一个请求发送身份验证信息(也就是“抢占式身份验证”)。

壳牌与旋度

旋度命令适用于大多数操作系统,包括Linux、macOS、Windows、FreeBSD等。

curl -X POST -L——user your-user-name:apiToken \ https://j必威国际有限公司enkins.example.com/job/your_job/build

与wget壳

wget命令需要——auth-no-challenge验证到Jenkins的选项:必威国际有限公司
wget——auth-no-challenge \——user=user——password=apiToken \ http://jen必威国际有限公司kins.example.com/job/your_job/build

使用cdancy/jenkins-rest的Groov必威国际有限公司y脚本

cdancy 必威国际有限公司/ jenkins-rest客户端极大地简化了REST API访问。下面的Groovy代码展示了如何对Jenkins进行身份验证并获取一些系统信息:必威国际有限公司

@Grab(集团=com.cdancy模块=必威国际有限公司jenkins-rest版本=0.0.18进口com.cdancy.必威国际有限公司jenkins.rest.JenkinsClient必威国际有限公司jenkins sclient client = jenkins sclient .builder() .endPoint(http://127.0.0.1:8080/ /可选的。默认为http://127.0.0.1:8080.credentials (用户:apiToken/ /可选的。.systemApi .build () println (client.api () () .systemInfo ())

有关更多信息,请参见cdancy 必威国际有限公司/ jenkins-rest维基

用于脚本客户机的Perl LWP示例

下面的Perl示例使用LWP模块通过“触发器远程构建”令牌启动一个Job:

# #使用LWP运行Jenkins作业#在必威国际有限公司请求对象上设置authorization_basic以使用BASIC HTTP授权,显然#已经正确地处理了抢占部分。#使用严格;使用警告;使用LWP;我的$server = 'srvname';我的$srvurl = "http://$server/j必威国际有限公司enkins";我的$uagent = LWP::UserAgent->new;我的$req = HTTP::Request->new(GET => "$srvurl/job/test/build?令牌= theTokenConfiguredForThisJob&cause = LWP +测试”);申请- > authorization_basic(“username@mydomain.com”,“apiToken”);我的$res = $uagent->请求($req); # Check the outcome of the response print "Result: " . $res->status_line . "\n"; print $res->headers->as_string; print "\n"; if (!$res->is_success) { print "Failed\n"; } else { print "Success!\n"; # print $res->content, "\n"; }

使用httpclient 4.3.x的Java示例

这将导致httpclient 4.3先发制人地发出身份验证:

进口java.io.IOException进口java.net.URI进口org.apache.http.HttpHost进口org.apache.http.HttpResponse进口org.apache.http.auth.AuthScope进口org.apache.http.auth.UsernamePasswordCredentials进口org.apache.http.client.AuthCache进口org.apache.http.client.ClientProtocolException进口org.apache.http.client.CredentialsProvider进口org.apache.http.client.methods.HttpGet进口org.apache.http.client.protocol.HttpClientContext进口org.apache.http.impl.auth.BasicScheme进口org.apache.http.impl.client.BasicAuthCache进口org.apache.http.impl.client.BasicCredentialsProvider进口org.apache.http.impl.client.CloseableHttpClient进口org.apache.http.impl.client.HttpClients进口org.apache.http.util.EntityUtils公共必威国际有限公司JenkinsScraper公共字符串刮(字符串urlString,字符串用户名、字符串密码)抛出ClientProtocolException,IOExceptionURIuri =URI共创(urlString);HttpHost主机=uri.getPort HttpHost (uri.getHost () (), uri.getScheme ());CredentialsProvider credsProvider =BasicCredentialsProvider ();credsProvider.setCredentials (uri.getPort AuthScope (uri.getHost () ()),UsernamePasswordCredentials(用户名、密码));//创建AuthCache实例AuthCache AuthCache =BasicAuthCache ();//生成BASIC方案对象并将其添加到本地认证缓存BasicScheme basicAuth =BasicScheme ();authCache。把(主机、basicAuth);CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();HttpGet HttpGet =HttpGet (uri);//将AuthCache添加到执行上下文HttpClientContext localContext = HttpClientContext.create();localContext.setAuthCache (authCache);HttpResponse响应= httpClient。执行(主机、httpGet localContext);返回EntityUtils.toString (response.getEntity ());}}


这个页面有用吗?

请通过这个提交你对这个页面的反馈快速形成

或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?

是的没有


在这里.