【问题标题】:Using Artifactory Java client with API Key?使用带有 API 密钥的 Artifactory Java 客户端?
【发布时间】:2019-04-21 22:48:26
【问题描述】:

我在任何地方都找不到如何使用 java 客户端和 API 密钥(不是用户名/密码)上传到 Artifactory 的示例。谁能帮我?到目前为止,我只有:

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

我想我需要以某种方式使用ArtifactoryRequest,但我不知道如何同时使用它们......

【问题讨论】:

  • 可能是setAccessToken?
  • 这不是访问令牌。这是一个 API 密钥。据我了解,它们并不相同。 API 密钥必须使用标头设置。

标签: java artifactory


【解决方案1】:

看文档,好像只支持用户名/密码https://github.com/jfrog/artifactory-client-java/blob/master/README.md

看源码,好像只支持username/password和accessTokenhttps://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();

这对你有用吗?

【讨论】:

  • 您好,发送 apiKey 作为密码不起作用。好像X-JFrog-Art-Api在java客户端不支持
【解决方案2】:
    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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2021-05-12
    • 2021-12-05
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多