Maven发布插件在git push错误上显示明文密码

时间:2015-11-20 16:21:37

标签: git maven password-protection maven-release-plugin maven-scm-plugin

我正在跑步

mvn release:prepare -Dusername=myuser -Dpassword=mypassword

并查看输出中的行:

[INFO] Executing: cmd.exe /X /C "git push https://myuser:********@myserver.com:8081/scm/project/project.git refs/heads/master:refs/heads/master"

但如果由于某种原因导致git push失败(例如我输入密码时出错),那么我会在日志中看到

[ERROR] fatal: unable to access 'https://myuser:mypassword@myserver.com:8081/scm/project/project.git/': SSL certificate problem: self signed certificate in certificate chain

所以我看到了PLAINTEXT密码。当我在Teamcity上使用此步骤时,如果构建失败,其他人可以看到我的密码时会导致安全问题。 我在Linux和Windows机器上都试过了。

我使用的是maven-release-plugin版本2.5.3。

有人知道如何解决它吗?

1 个答案:

答案 0 :(得分:3)

在发布插件中使用另一个git提供程序。切换到另一个git服务器时我遇到了同样的问题。突然,即使没有错误,Jenkins密码也会显示在构建日志中。也许git服务器使用不同的身份验证方案。

这对我有用:

 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-release-plugin</artifactId>
   <version>2.5.3</version>
   <configuration>
     <providerImplementations>
       <git>jgit</git>
     </providerImplementations>
   </configuration>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-jgit</artifactId>
       <version>1.9.5</version>
     </dependency>
   </dependencies>                 
 </plugin>

根据this,这个问题大约在6个月前修复。