Artifactory OSS
5.4.6 rev 50406900
尝试让访问令牌工作。
我创建了令牌......
e.g。 curl -uadmin:adminpw -X POST“myserver:8081 / artifactory / api / security / token”-d“username = moehoward”
返回的msg看起来很成功...
{
"scope" : "member-of-groups:readers api:*",
"access_token" : <very-long-string>
"expires_in" : 3600,
"token_type" : "Bearer"
}
我可以在gui(admin - &gt; Security - &gt; Access Tokens)中看到它,其中“Subject”=对用户(上例中的“moehoward”)并且“Token ID”更短,像... ...
f2eb693a-d4ff-4618-ba52-764dc975c497
为了测试,我尝试使用文档中的示例ping ...
curl -umoehoward:<very-long-string> myserver:8081/artifactory/api/system/ping
401失败(凭据错误)。
我用gui中看到的“令牌ID”替换令牌,结果相同。
我再次使用“moehoward”用户的硬编码pw替换并且可以正常工作(以“OK”响应)。
我尝试了“-H”身份验证:Bearer“方法使用长字符串并且工作正常。所以我想非常长的字符串是令牌,而不是gui中的”令牌ID“。
问:任何想法为什么这适用于Bearer“而不是用户的名字?
答案 0 :(得分:1)
因此,您认为这适用于标准身份验证和身份验证HTTP标头。
我在具有相同版本Artifactory OSS 5.4.6
的服务器上进行了测试,以下工作正常
注入适当的变量
export SERVER=server-artifactory
export APIKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
为用户moehoward创建和使用访问令牌
curl -u "admin:$APIKEY" -X POST "http://$SERVER/artifactory/api/security/token" -d "username=moehoward" -d "scope=member-of-groups:readers" > token.log
export TOKEN=`cat token.log | jq -r '.access_token'`
curl -u "moehoward:$TOKEN" "http://$SERVER/artifactory/api/system/ping"
curl -H "Authorization: Bearer $TOKEN" "http://$SERVER/artifactory/api/system/ping"
我得到了#34;好的&#34;从最后两个命令。你能准确地运行这些命令并报告回来吗?
我亲身经历了同样的问题(承载标头工作,标准用户凭证不起作用)和旧版本的curl。显而易见的解决方法是使用Bearer,更复杂的解决方法是升级curl(或使用其他工具)。
你使用的curl版本是什么? 2015年或更近期的任何卷曲都应该可以正常工作。