25

基本認証の背後にある Artifactory リポジトリがあります。アクセスを許可するには、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>

サーバータグはartifactoryユーザーのユーザー資格情報ですが、基本認証を通過するには別のユーザー/パスワードも提供する必要があります。私はそれをどこに置きますか?!?

4

4 に答える 4

17

ユーザー名とパスワードは、サーバー設定にあるとおりに入力されます。あなたの問題は、ID( a rtifactory )ではなく、名前( a rtifactory )でサーバーを指定したことだと思います。

グローバル設定ではなく、ユーザー設定にサーバー設定を入れることをお勧めします。Maven 2.1.0+ でパスワードを暗号化することもできます。詳細については、ミニ ガイドを参照してください。

更新: Artifactory のどのバージョンを使用していますか? basic-auth が失敗するという議論と対応する問題があります。これは明らかに 2.0.7 と 2.1.0 で修正されています。

議論から、回避策はコマンドラインを介してプロパティを渡すことです。

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

更新: Maven インストールがファイアウォール経由で接続できるようにするには、settings.xml のプロキシ セクションを構成する必要があります。これを行うための指針については、この質問を参照してください。


Update2:サーバー設定で設定できる追加のプロパティがあります。背景については、このブログを参照してください。これをテストする機会はありませんでしたが、ブログと関連する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> 
于 2009-08-15T06:49:05.863 に答える
5

必要な HTTP ヘッダーを手動で記述することにより、次の構成を使用して HTTP 基本認証を有効にすることができました。私の状況では、貧乏人のステージング リポジトリとしてGo サーバーのビルド アーティファクトにアクセスするために使用しました。

    <server>
        <id>go</id>
        <configuration>
            <httpHeaders>
                <property>
                    <name>Authorization</name>
                    <!-- Base64-encoded "guest:guest" -->
                    <value>Basic Z3Vlc3Q6Z3Vlc3Q=</value>
                </property>
            </httpHeaders>
        </configuration>
    </server>
于 2012-06-11T18:11:40.077 に答える
3

平文パスワードの問題を解決するためのヒント:

  • Artifactory にアクセスしてログインします。
  • ログインしたら、画面の右上隅にあるユーザー名をクリックします。
  • パスワードを入力してから、em Unlockbutton をクリックして、暗号化されたパスワードを有効にします。
  • 画面下部に表示されるタグをコピーし、settings.xml ファイルに貼り付けます。パスワードをコピーするだけの場合は、パスワードの先頭にある「\」を含め、以下に示すタグと完全に一致するようにしてください。
  • POM.xmlで、タグに定義されたサーバーのIDでタグを調整することを忘れないでください
  • 更新ボタンをクリックして準備完了!次のプロジェクトの発行時にすべてがうまくいくかどうかを確認してください。
于 2013-03-08T00:48:10.063 に答える
0

ほとんどの場合、これは次の理由により発生します。

  • ~/.m2/conf または ~/.m2 ディレクトリ内に Settings.xml が見つかりません
  • Settings.xmlに Artifactory にアクセスするためUsernameの正しい認証情報が含まれていませんAPI Key
  • 指定された認証情報では、Settings.xml に記載されている Artifactory にアクセスできません

Mavenがどのディレクトリで何を探すかを見ることができます... -e -X オプションで実行すると、これらの詳細が表示されます

Settings.xml ファイルが別のディレクトリ内に配置される場合があるため、ローカルでビルドすると、maven は ~/.m2 または ~/.m2/conf ディレクトリ内でそれを見つけることができません。たとえば、プロジェクトが buildkite を使用している場合、ビルド プロセス中に buildkite がアクセスできるディレクトリ内にある可能性があります。その場合は、同じ Settings.xml ファイルを ~/.m2 にコピーするだけです。

ここに画像の説明を入力

aritifactory を見つけるには、電子メール/パスワードを使用して URL にログオンし、プロファイルに移動して、写真のようにユーザー名と API キーを見つけます。

ここに画像の説明を入力

次に、Settings.xml でリポジトリが正しいことを確認します

ここに画像の説明を入力

于 2021-05-06T11:39:32.480 に答える