【问题标题】:maven release plugin release.properties file contains unencrypted passwordmaven 发布插件 release.properties 文件包含未加密的密码
【发布时间】:2013-01-28 06:07:23
【问题描述】:

我正在运行 maven 发布插件 (org.apache.maven.plugins:maven-release-plugin:2.3.2) 并注意到 scm 的密码以明文形式保存在 release.properties 文件中通过命令行传入。我想知道是否有办法关闭它。

我正在使用 Hudson 来自动化发布过程,并且通过 Hudson 将 svn 用户名和密码传递到命令行。原因是做发布准备的人可以改变,我有多个 hudson 工作共享一个 settings.xml 来发布不同的项目。

我正在传递参数,例如: -Dtag=${svn.label} -DreleaseVersion=${maven.releaseVersion} -DdevelopmentVersion=${maven.developmentVersion} -Dusername=${svn.username} -Dpassword=${svn.password} -DscmCommentPrefix='[ maven-release-plugin] ${env.BUILD_URL} '

release.properties 文件是在 release:prepare 期间创建的,但我认为没有必要这样做,因为我正在通过命令行传递所有信息。创建此 release.properties 文件时,它包含纯文本密码。这是有问题的,因为可以使用 hudson 浏览工作区,因此任何有权访问 hudson 的人都可以通过浏览器打开文件来查看密码。

有没有办法不创建 release.properties 文件,或者不将密码保存在文件中?我意识到可以将加密密码保存在 settings.xml 文件中,但该文件在多个作业之间共享,并且运行作业的人员无法编辑。

【问题讨论】:

  • 您是否使用 Maven 选项进行密码加密? ( -emp,--encrypt-master-password 加密主安全密码 -ep,--encrypt-password 加密服务器密码)

标签: maven-release-plugin


【解决方案1】:

就在几天前,有人要求进行这项改进:https://jira.codehaus.org/browse/MRELEASE-846

【讨论】:

    【解决方案2】:

    我们避免了让 svn-client 为我们缓存密码的问题。

    为此,我们有一个具有足够颠覆权限的特殊帐户。

    在我们的构建服务器上,密码由 svn-client 以纯文本形式存储在运行 hudson 的用户的帐户中。对我们来说没问题,因为只有 hudson 管理员才能访问此帐户。

    但是你也可以配置 svn-client 来存储加密的密码。配置取决于您的操作系统。

    svn-client 配置存储在 .subversion (linux) 或 "ApplicationData/Subversion" (windows) 中。

    hereherehere

    【讨论】:

    • 一般来说,这对于 SVN 来说是一个好方法。对于我们的用例,必须保留用户的个人登录信息以获取源代码历史记录。因此,支持多个 SVN 用户非常重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2022-12-17
    相关资源
    最近更新 更多