通过API密钥使用Artifactory Java客户端吗?

时间:2018-06-19 16:45:16

标签: java artifactory

我找不到一个任何地方示例,说明如何使用Java客户端和API密钥(而非用户名/密码)上传到Artifactory。谁能帮我?到目前为止,我所拥有的只是:

Artifactory artifactory = ArtifactoryClientBuilder.create()
            .setUrl("https://artifactory.company.com")
            .build();

我认为我需要以某种方式使用ArtifactoryRequest,但我不知道如何将两者一起使用...

2 个答案:

答案 0 :(得分:2)

查看文档,似乎仅支持用户名/密码https://github.com/jfrog/artifactory-client-java/blob/master/README.md

查看源代码,似乎仅支持用户名/密码和accessToken https://github.com/jfrog/artifactory-client-java/blob/master/services/src/main/groovy/org/jfrog/artifactory/client/ArtifactoryClientBuilder.java

有一些关于此功能的请求(https://github.com/jfrog/artifactory-client-java/pull/103),但是似乎存在一种解决方法,可以手动设置“ X-JFrog-Art-Api”来解决问题。这将涉及手动摆弄标题。

我个人一直以来都使用API​​密钥代替“身份验证”字段中的密码这一事实。

有关https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-Example-DeployinganArtifact上凭据的更多信息

您可以使用API​​密钥作为密码尝试以下方法吗?

请注意,您还需要附加到API密钥的用户名

Artifactory artifactory = ArtifactoryClientBuilder.create()
.setUrl("ArtifactoryUrl")
.setUsername("username")
.setPassword("APIKEY")
.build();

这对您有用吗?

答案 1 :(得分:0)

    Artifactory artifactory = ArtifactoryClientBuilder.create()
    .setUrl("ArtifactoryUrl")
    .setAccessToken([your access token])
    .build();

像魅力一样工作.. 要创建访问令牌,请尝试使用以下命令:

curl -uadmin:[PASSWORD] -XPOST "http://localhost:8081/artifactory/api/security/token" -d "username=[USERNAME]" -d "scope=member-of-groups:readers"