我试图在我的settings.xml中加密服务器密码,当我试图部署一个工件时,我得到了这个异常。
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:313)
at javax.crypto.Cipher.doFinal(Cipher.java:2087)
at org.sonatype.plexus.components.cipher.PBECipher.decrypt64(PBECipher.java:185)
... 18 more以下是xml的摘录
<server>
<id>server</id>
<username>username</username>
<password>{N8AF8BmQ5x8HZX/yrlrP1QiKNMEdoXWyBFZd/*zIabY=}</password>
</server>我的主密码也出现了同样的例外情况,我只是遵循这里的说明,https://maven.apache.org/guides/mini/guide-encryption.html创建了一个安全-setings.xml,如指南中所示,执行这两个命令并将加密密码复制到适当的xml文件中。
mvn --encrypt-master-password <password>
mvn --encrypt-password <password>发布于 2016-09-06 16:59:58
在罕见的情况下,有一个逃避的问题,这很可能发生在这里。考虑重新生成主密码(使用-emp或-加密-主密码)和/或密码(使用-ep或-加密-密码)。他们的价值观每次都会有所不同。
发布于 2017-01-11 09:00:25
或者是偶然地,你复制了错误的参数:
--encrypt-master-password 并将输出放在settings.xml中,而不是:
--encrypt-password这给我带来了麻烦。(该死的密码过期策略)
发布于 2021-06-10 12:38:54
让我们了解一下这里的问题。
mvn加密密码用于确保对受保护的存储库服务器(可能是Nexus或JFrog)的安全访问。
此访问基于2个设置。
<server>
<id>my.server</id>
<username>foo</username>
<password>{COQLCE6DU6GtcS5P=}</password>
</server>
若要具有此文件的密码,命令为
mvn --encrypt-password <password>
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
若要具有此文件的密码,mvn命令为
mvn --encrypt-master-password <password>现在问题中提到的例外情况主要是在设置-security.file中意外复制mvn --encrypt-password <password>生成的密码而不是使用mvn --encrypt-master-password <password>生成的密码的潜在副作用。
所以,反复检查你的步骤,它应该能解决这个问题。
如需详细参考,请访问Maven -密码加密
https://stackoverflow.com/questions/31525691
复制相似问题