newlisp HTTP Basic Authentication

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了newlisp HTTP Basic Authentication相关的知识,希望对你有一定的参考价值。

HTTP Basic Authentication原来很easy,參考文档:http://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81

将username和password用:分隔,然后用base64编码。最后用HTTP GET方法请求页面

以下一小段代码用newLISP调用了Jenkins的Remote API:

[email protected]:~$ ./http.lsp 
hello
<freeStyleBuild><action><cause><shortDescription>Started by upstream project "detail_summary_pipeline" build number 3</shortDescription><upstreamBuild>3</upstreamBuild><upstreamProject>detail_summary_pipeline</upstreamProject><upstreamUrl>job/detail_summary_pipeline/</upstreamUrl></cause></action><action></action><action><buildsByBranchName><refsremotesorigindevelop><buildNumber>8</buildNumber><marked><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><branch><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><name>refs/remotes/origin/develop</name></branch></marked><revision><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><branch><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><name>refs/remotes/origin/develop</name></branch></revision></refsremotesorigindevelop></buildsByBranchName><lastBuiltRevision><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><branch><SHA1>8fe197b461d99b198551d9f50f3dc73cd5424c0b</SHA1><name>refs/remotes/origin/develop</name></branch></lastBuiltRevision><remoteUrl>[email protected]:datawarehouse/log_aggregation.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><building>false</building><duration>105297</duration><estimatedDuration>95546</estimatedDuration><fullDisplayName>sum_user_query_day_cloud #8</fullDisplayName><id>2014-10-02_11-01-53</id><keepLog>false</keepLog><number>8</number><result>SUCCESS</result><timestamp>1412218913296</timestamp><url>http://10.100.86.22:8080/job/sum_user_query_day_cloud/8/</url><builtOn>slave25</builtOn><changeSet><kind>git</kind></changeSet></freeStyleBuild>

http.lsp源码例如以下:

#!/usr/bin/newlisp

(println "hello")

(set ‘user-pass "user:pwd")
(set ‘auth (append "Authorization: Basic " (base64-enc user-pass) "\r\n"))
(set ‘xml (get-url "http://your_jenkins/job/your_job/lastBuild/api/xml" 5000 auth))
(println xml)

(exit)

注意,get-url函数功能强大,这里的5000指的是超时时间,auth就是将编码后的username和password放在header里面发出去。


以上是关于newlisp HTTP Basic Authentication的主要内容,如果未能解决你的问题,请参考以下文章

ps 和 grep 查找消除 grep自身查找

Perl Authen::OATH 和 Google Authenticator - 不兼容?

Http Basic认证

之间有什么http_basic_authenticate_with和authenticate_or_request_with_http_basic区别?

详解BASIC认证

php 使用Passport进行Laravel REST API身份验证:https://www.cloudways.com/blog/rest-api-laravel-passport-authen