2016-05-25 2 views
6

Мы используем Artifactory Version 4.7.0. Я настроил LDAP для Artifactory и могу успешно войти в систему. Когда я пытаюсь использовать зашифрованный пароль для развертывания артефактов, он не работает. На вкладке «Артефакты» я нажал «Установить меня» и сгенерировал настройки Maven после ввода моих учетных данных. Затем я скачал файл settings.xml который имел следующее содержание:Невозможно развернуть артефакт с использованием зашифрованного пароля с включенным LDAP

<?xml version="1.0" encoding="UTF-8"?> 
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <servers> 
    <server> 
     <username>${security.getCurrentUsername()}</username> 
     <password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password> 
     <id>central</id> 
    </server> 
    <server> 
     <username>${security.getCurrentUsername()}</username> 
     <password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password> 
     <id>snapshots</id> 
    </server> 
    </servers> 
    <profiles> 
    <profile> 
     <repositories> 
     <repository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>libs-release</name> 
      <url>http://artifactory:9090/libs-release</url> 
     </repository> 
     <repository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>libs-snapshot</name> 
      <url>http://artifactory:9090/libs-snapshot</url> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>plugins-release</name> 
      <url>http://artifactory:9090/plugins-release</url> 
     </pluginRepository> 
     <pluginRepository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>plugins-snapshot</name> 
      <url>http://artifactory:9090/plugins-snapshot</url> 
     </pluginRepository> 
     </pluginRepositories> 
     <id>artifactory</id> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>artifactory</activeProfile> 
    </activeProfiles> 
</settings> 

Тогда я пошел в мой профиль, введенный пароль и скопировать зашифрованный пароль, как показано ниже:

enter image description here

Я скопировал этот пароль в моем settings.xml, как показано ниже:

<server> 
     <username>${security.getCurrentUsername()}</username> 
     <password>${security.getEscapedEncryptedPassword()!"AP6FcvsVawZhcfEdZB2PCTrCUZa"}</password> 
     <id>central</id> 
    </server> 
    <server> 
     <username>${security.getCurrentUsername()}</username> 
     <password>${security.getEscapedEncryptedPassword()!"AP6FcvsVawZhcfEdZB2PCTrCUZa"}</password> 
     <id>snapshots</id> 
    </server> 

, а затем, когда я попытался развернуть артефакт, я получаю следующее сообщение об ошибке:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project more-maven-examples: Failed to deploy artifac 
ts: Could not transfer artifact com.infiniteskills.maven:more-maven-examples:jar:1.0 from/to central (http://artifactory:9090/libs-release-local): 
Failed to transfer file: http://artifactory:9090/libs-release-local/com/infiniteskills/maven/more-maven-examples/1.0/more-maven-examples-1.0.jar. R 
eturn code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 

запись в request.log файл для неудачной попытки:

20160525143037|9526|REQUEST|10.20.55.124|non_authenticated_user|PUT|/libs-release-local/com/infiniteskills/maven/more-maven-examples/1.0/more-maven-examples-1.0.jar|HTTP/1.1|401|2981 
20160525143037|2|REQUEST|10.20.55.124|non_authenticated_user|PUT|/libs-release-local/com/infiniteskills/maven/more-maven-examples/1.0/more-maven-examples-1.0.pom|HTTP/1.1|401|1235 

В безопасности> Общие> Password Policy Encryption установлен в ПОДДЕРЖКЕ. Кроме того, шифрование паролей устанавливается в зашифрованном виде.

Удивительно, когда i hard-code мое имя и пароль LDAP в файле settings.xml в том же блоке <server>, он отлично работает.

Я делаю что-то неправильно или это ошибка?

+0

Возможно, вам нужно отказаться от котировок вокруг пароля ...? – carlspring

+0

Спасибо. Пробовал ваше предложение, но не работал. :(Такая же ошибка – Technext

+0

У меня такая же проблема на Artifactory 4.5.0 при попытке использовать эту функцию для Ivy вместо Maven. Вы нашли какое-либо решение/объяснение? – jeremfg

ответ

1

Вы <password/> раздел должен быть что-то вроде:

<password>{COQLCE6DU6GtcS5P=}</password> 

Посмотрите на Maven Encryption Guide.

+0

Спасибо, но это не сработало. Я действительно скептически относился к тому, будет ли это работать. Это потому, что Maven автоматически создает строку (' $ {security.getEscapedEncryptedPassword()!" *** Вставьте зашифрованный пароль здесь *** "}') для зашифрованного пароля, когда я загружаю settings.xml из Artifactory. Кажется, что вы предложили присутствовать в старой версии Artifactory, хотя я никогда не использовал эту функцию в этот момент. Похоже, Artifactory изменил способ обработки зашифрованного пароля (как видно в его текущей форме). – Technext

+1

Это не сгенерировано maven, оно создано Artifactory. – khmarbaise

+0

Извините, я имел в виду только Artifactory :) – Technext

Смежные вопросы