如何在maven中保护和加密setting.xml paswords文件?

时间:2017-10-10 07:59:57

标签: maven security

如何在maven的settings.xml中保护服务器/代理设置?

我认为这主要是关于存储在那里的登录和密码,我认为那些不能放置在那里明确,如果它们存储在env变量/ etc中?

安全settings.xml的示例应如何显示?

2 个答案:

答案 0 :(得分:2)

您有两个选择:

1)如果您只需要在settings.xml中使用:

执行:

mvn --encrypt-password <password>

您将获得如下加密密码:

{COQLCE6DU6GtcS5P=}

您可以在settings.xml中使用此密码:

<settings>
 ...
    <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
    </servers>
...
</settings>

2)如果您需要多次使用:

执行:

mvn --encrypt-master-password <password>

哟会得到这样的加密密码:

{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}

将此密码存储在 $ {user.home} /。m2 / settings-security.xml 中,它应如下所示:

<settingsSecurity>
      <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>

答案 1 :(得分:1)

如果settings.xml已共享(也许是&#39;团队&#39;文件,也许它位于共享版本/ CI框中),那么其中的敏感信息 - 特别是密码 - 可以( :)加密。

  1. 创建主密码:

    mvn --encrypt-master-password <password>
    
  2. 将主密码添加到settings-security.xml

  3. 加密密码

    mvn --encrypt-password <password>
    
  4. 将加密值添加到settings.xml

  5. 更多详情in the docs