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

kol*_*r23 5 security maven

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

我认为这主要是关于存储在那里的登录名和密码,我认为这些不能显式放置在那里,它们是否应该存储在环境变量/等中?

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

Jav*_* C. 4

您有 2 个选择:

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

执行:

mvn --encrypt-password <password>
Run Code Online (Sandbox Code Playgroud)

您将获得如下加密密码:

{COQLCE6DU6GtcS5P=}
Run Code Online (Sandbox Code Playgroud)

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

<settings>
 ...
    <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
    </servers>
...
</settings>
Run Code Online (Sandbox Code Playgroud)

2)如果需要多次使用:

执行:

mvn --encrypt-master-password <password>
Run Code Online (Sandbox Code Playgroud)

你将得到这样的加密密码:

{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
Run Code Online (Sandbox Code Playgroud)

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

<settingsSecurity>
      <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
Run Code Online (Sandbox Code Playgroud)