Доступ к рефайту Artifactory/Maven, который требует базового auth
У меня есть репетитор 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, но мне также нужно предоставить другой пользователь/пароль, чтобы пройти через basic-auth. Где бы я это сказал?!?
Ответы
Ответ 1
Имя пользователя и пароль входят в настройки сервера, как они есть у вас. Я думаю, ваша проблема в том, что вы указали сервер по имени ( A rtifactory), а не его id ( a rtifactory).
Я бы порекомендовал вам поместить настройки сервера в пользовательские настройки, а не в глобальные настройки. Вы также можете зашифровать пароль в Maven 2.1.0+, подробнее см. мини-руководство.
Обновление: какую версию Artifactory вы используете? Существует обсуждение и соответствующее issue, что basic-auth не выполняется. Это, по-видимому, было зафиксировано в 2.0.7 и 2.1.0.
Из обсуждения, кажется, что обходной путь заключается в передаче свойств через командную строку, например.
-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080 -Dproxy.username=... -Dhttp.password=...
Обновление. Чтобы ваша установка Maven подключалась через брандмауэр, вам нужно настроить раздел прокси settings.xml, см. этот question для некоторые указатели на это.
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>
Ответ 2
Я смог использовать следующую конфигурацию, чтобы включить базовую аутентификацию 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>
Ответ 3
Совет для решения проблемы с помощью текстового пароля:
- Доступ и вход в Artifactory.
- Как только вы войдете в систему, нажмите на свое имя пользователя в правом верхнем углу экрана.
- Поместите свой пароль, затем клик в em Unlockbutton, включив зашифрованный пароль.
- Скопируйте тег, который будет отображаться на нижней части экрана, и вставьте его в файл settings.xml. Если вы предпочитаете просто скопировать пароль, убедитесь, что он точно равен тегу, указанному ниже, включая "\" в начале пароля.
- Не забудьте настроить тег с идентификатором вашего сервера, определенным в теге, в вашем POM.xml
- Нажмите кнопку "Обновить" и готов! Убедитесь, что все будет хорошо при следующей публикации проекта.