12

提出(并回答)这个问题只是为了与 SO 社区分享一些知识。

我最近想出了我的 Web 应用程序的部署异常(在收到来自 SVN 存储库的一些更改后),它说:

<错误> <部署者> 任务“1”的 ID 为“1350377960779”。错误是:“com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效填充字节。” com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效填充字节。在 com.rsa.jsafe.ca(未知来源) 在 com.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal(未知来源) 在 weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:124) 在 weblogic.security。 weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96) 处的 internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:184) 被截断。

4

3 回答 3

15

谷歌搜索找到答案不是很有帮助。检查从我的 SVN 存储库收到的文件后,我注意到 jdbc 应用程序资源已更改。

更仔细地检查 jdbc 资源,我发现它正在password-encrypted使用仅用于生产环境的属性

<password-encrypted>{AES}some+very+long+encrypted+string</password-encrypted>

所以我把这个属性注释掉了,使用了开发环境使用的属性:

 <properties>
     <property>
        <name>user</name>
        <value>MY_USER</value>
     </property>
     <property>
        <name>password</name>
        <value>MY_PASS_IN_PLAIN_TEXT</value>
     </property>
  </properties>

这工作得很好。

于 2012-10-16T09:43:30.263 回答
6

我只是遇到了这个问题,我所要做的就是在密码为空时将页面保存在连接池页面上。那当然会失败。然后输入密码并再次保存。这次没有填充字节错误,并且连接成功。

于 2014-09-29T18:06:34.990 回答
1

我单击了 MaVRoSCy 自己的响应,因为它有用。但缺点是您的密码变得可见(在开发环境中可能不是问题)。

这个密码加密问题可以通过在 weblogic 实例中重新加密密码来解决。

为此,请转到您的 weblogic 域,例如:ORACLE_HOME\user_projects\domains\YOUR_DOMAIN

并执行此命令: java weblogic.security.Encrypt YOUR_PASSWORD

这将输出如下内容: {AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=

这是您的 weblogic 实例的加密密码。

然后只需在数据源 xml 配置中的密码加密属性中替换它。

<password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted>
于 2017-08-04T18:29:06.693 回答