Maven 密码加密

1. 介绍
2. 如果创建一个主密码
3. 如果加密服务器密码
4. 如何将主密码保存到可移动设备上
5. Tips
介绍
Maven 2.1.0+ 现在支持服务器密码加密。主要用于下面的情况:
• 多用户共享同一个建造机器 (Server, CI box)
• 一部分用户可以部署Maven 成品到仓库,另一部分不能。
∘ 这关系到一些服务器操作,需要认证,不仅仅发布
• settings.xml 被用户共享
已实现的解决方案增加下面的能力:
• 已认证的用户拥有一个额外的 settings-security.xml 文件,位于他们的 ~/.m2 文件夹
∘ 这个文件包含加密后的主密码,用于加密其他的密码
∘ 或者包含一个 relocation – 引用到另一个文件,可能在可移动设备上
∘ 这个密码现在通过命令行接口第一次创建
• settings.xml里面的server条目拥有 passwords 和/或 keystore passphrases 加密
∘ 现在 – 在主密码被创建和保存在相应位置后,可以通过命令行接口完成。
如何创建一个主密码
使用下面的命令行:
mvn –encrypt-master-password <password>
这个命令将生成一个加密后的密码,结构类似如下:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
将这个密码保存在 ~/.m2/settting-security.xml, 内容如下:
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
这完成后,你可以开始加密已有的服务器密码了。
如何加密服务器密码
你需要用下面的命令行:
mvn –encrypt-password <password>
这个命令会生成加密后的密码,类似于:
{COQLCE6DU6GtcS5P=}
复制并粘贴到你的 settings.xml 文件的 server 段。结果类似下面:
<settings>
<servers>
<server>
<id>my.server</id>
<username>foo</username>
<password>{COQLCE6DU6GtcS5P=}</password>
</server>
</servers>
</settings>
请注意,密码可以在花括号外面包含其他的信息,因此类似下的内容也可以使用:
<settings>
<servers>
<server>
<id>my.server</id>
<username>foo</username>
<password>Oleg reset this password on 2009-03-11, expires on 2009-04-11 {COQLCE6DU6GtcS5P=}</password>
</server>
</servers>
</settings>
那么,你现在可以 use,say,deploy 插件,来写到这个服务器上:
mvn deploy:deploy-file -Durl=https://maven.corp.com/repo -DrepositoryId=my.server -Dfile=you-artifact-1.0.jar
如何在移动设备上保存主密码
如上面描述的那样创建主密码,内容类似如下:
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
保存到你的移动设备上的某一个位置,如移动设备挂载到 /Volumes/mySecureUsb ,那么文件保存为 /Volumes/mySecureUsb/secure/settings-security.xml 。
然后创建文件 ~/.m2/settings-security.xml 包含下面的内容:
<settingsSecurity>
<relocation>/Volumes/mySecureUsb/secure/settings-security.xml</relocation>
</settingsSecurity>
确保操作系统挂载该移动设备后,加密的方式可以正常工作。
Tips
密码加密后,字符串里面有花括号,需要使用字符 ‘\’ 进行转义。
如:
jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+{EF1iFQyJQ=
转义:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+\{EF1iFQyJQ=}
This entry was posted in Maven. Bookmark the permalink.

Leave a Reply