这个问题被问及(和回答)只是share与SO社区的一些知识。
我最近提出了我的Web应用程序的部署异常(在收到SVN存储库的一些更改后),说:
<错误> <部署者>对于任务'1',ID为'1350377960779'。错误是:'com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效的填充字节。 com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效的填充字节。 在com.rsa.jsafe.c.a(未知来源) 在com.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal(未知来源) 在weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:124) at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:184) 在weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96) 截断。查看日志文件以获取完整的堆栈跟踪 引发者:com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效的填充字节。
答案 0 :(得分:13)
谷歌搜索找到答案并不是很有帮助。检查从我的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>
这很好用。
答案 1 :(得分:4)
我遇到了这个问题,而我所要做的就是在密码为空的情况下将页面保存在“连接池”页面上。当然那会失败。然后输入密码再保存。这次没有填充字节错误,它会连接并且不会失败。
答案 2 :(得分:0)
我点击MaVRoSCy自己的回复是有用的,因为它有效。 但缺点是你的密码变得可见(在开发环境中可能不是问题)。
密码加密的这个问题可以通过在weblogic实例上重新加密密码来解决。
要执行此操作,请转到您的weblogic域,例如: ORACLE_HOME \ user_projects \ domains \ YOUR_DOMAIN
执行此命令: java weblogic.security.Encrypt YOUR_PASSWORD
这将输出如下内容: 的 {AES} 0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b /银= 强>
这是您的weblogic实例的加密密码。
然后只需在datasource xml配置中的密码加密属性中替换它。
<password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted>