访问需要基本身份验证的Artifactory / Maven Repo

时间:2009-08-14 23:57:58

标签: maven-2 basic-authentication artifactory

我有一个Artifactory repo,它位于基本身份验证之后。如何配置settings.xml以允许访问?

<mirrors>
    <mirror>
        <id>artifactory</id>
        <mirrorOf>*</mirrorOf>
        <url>https://myserver.example.com/artifactory/repo</url>
        <name>Artifactory</name>
    </mirror>
</mirrors>
<servers>
    <!--
        This server configuration gives your personal username/password for
        artifactory. Note that the server id must match that given in the
        mirrors section.
    -->
    <server>
        <id>Artifactory</id>
        <username>someArtifactoryUser</username>
        <password>someArtifactoryPassword</password>
    </server>

因此服务器标签是神器用户的用户凭据,但我还需要提供另一个用户/密码才能通过基本身份验证。我会把它放在哪里?!?

4 个答案:

答案 0 :(得分:16)

用户名和密码就像您拥有的那样进入服务器设置。我认为你的问题是你已经通过名称( A rtifactory)指定了服务器,而不是它的id( a rtifactory)。

我建议您将服务器设置放在用户设置中而不是全局设置中。您还可以在Maven 2.1.0+中加密密码,有关详细信息,请参阅mini guide

更新:您使用的是什么版本的Artifactory?基本身份验证失败的a discussion和相应的issue。这显然已在2.0.7和2.1.0中修复。

从讨论开始,似乎workaround是通过命令行传递属性,例如

-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080 -Dproxy.username=... -Dhttp.password=... 

更新:要让您的Maven安装通过防火墙连接,您需要配置settings.xml的代理部分,请参阅此question以获取有关此操作的一些指示。


Update2:您可以在服务器设置中设置其他属性,有关背景信息,请参阅此blog。我没有机会对此进行测试,但是从博客和相关http wagon javadoc开始,您可以在服务器设置上设置authenticationInfo,如下所示:

<server>  
  <id>Artifactory</id>
  <username>someArtifactoryUser</username>
  <password>someArtifactoryPassword</password>
  <configuration>  
    <authenticationInfo>
      <userName>auth-user</userName>
      <password>auth-pass</password>
    </authenticationInfo>
  </configuration>  
</server> 

答案 1 :(得分:4)

我能够使用以下配置启用HTTP基本身份验证 - 手动编写the necessary HTTP headers。在我的情况下,我用它来访问我Go server上的构建工件作为穷人的临时存储库。

    <server>
        <id>go</id>
        <configuration>
            <httpHeaders>
                <property>
                    <name>Authorization</name>
                    <!-- Base64-encoded "guest:guest" -->
                    <value>Basic Z3Vlc3Q6Z3Vlc3Q=</value>
                </property>
            </httpHeaders>
        </configuration>
    </server>

答案 2 :(得分:3)

提示使用明文密码解决问题:

  • 访问并登录Artifactory。
  • 登录后,点击屏幕右上角的用户名。
  • 将密码然后clique放入em解锁按钮,启用加密密码。
  • 复制将在屏幕下方显示的标记,并将其粘贴到settings.xml文件中。如果您只想复制密码,请确保让它完全等于下面显示的标记,包括&#34; \&#34;在密码的开头。
  • 请记住使用POM.xml
  • 中定义到标记中的服务器ID调整标记
  • 点击“更新”按钮即可!检查下一个项目的出版物是否一切都会顺利进行。

答案 3 :(得分:0)

大多数情况下发生这种情况是由于以下原因

  • 在 ~/.m2/conf 或 ~/.m2 目录中找不到 Settings.xml
  • Settings.xml 不包含访问 Artifactory 的正确凭据 UsernameAPI Key
  • 无法使用给定的凭据访问 Settings.xml 中提到的 Artifactory

您可以看到 Maven 在哪些目录中查找的内容...使用 -e -X 选项运行将显示这些详细信息

有时可能会将Settings.xml 文件放在不同的目录中,因此在本地构建时,maven 无法在~/.m2 或~/.m2/conf 目录中找到它。例如,如果项目使用 buildkite,它可能位于 buildkite 在构建过程中可以访问的目录中。在这种情况下,只需将相同的 Settings.xml 文件复制到 ~/.m2 中即可。

enter image description here

要查找 aritifactory,请使用您的电子邮件/密码登录 url,然后转到个人资料并找到用户名和 API 密钥,如图片所示。

enter image description here

然后在 Settings.xml 中检查存储库是否正确

enter image description here