【问题标题】:Weblogic Deployment Exception : PaddingException: Could not perform unpadding: invalid pad byteWeblogic 部署异常:PaddingException:无法执行取消填充:无效填充字节
【发布时间】:2012-10-06 09:07:20
【问题描述】:

这个问题被问(和回答)只是为了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) 在 weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:184) 在 weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96) 截断。查看日志文件以获取完整的堆栈跟踪 原因:com.rsa.jsafe.JSAFE_PaddingException:无法执行取消填充:无效填充字节。

【问题讨论】:

    标签: oracle weblogic weblogic-10.x jdeveloper


    【解决方案1】:

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

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

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

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

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

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

    然后只需在数据源 xml 配置中的 password-encrypted 属性中替换它。

    <password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted>
    

    【讨论】:

    • 通知。您可能会收到“错误:无法找到或加载主类 weblogic.security.Encrypt”。在这种情况下,请转到 bin 文件夹并输入以下内容:. ./setDomainEnv.sh 注意脚本名称前的点。当您按 Enter 键时,您将回到您的域主页。现在输入“java weblogic.security.Encrypt”,它会工作
    【解决方案2】:

    谷歌搜索找到答案并不是很有帮助。检查从我的 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>
    

    而且效果很好。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 在 WebLogic 12.1.3 中尝试过这种方法,虽然可以“保存”更改,但无法“激活更改”仍然给出“PaddingException”。
      • @radimpe 您可能需要暂时删除目标,以便保存配置更改。
      • 我不敢相信这有效!谢谢你让我免于奇怪的头痛。
      • @yannicuLar 你的评论对我帮助很大。干杯!
      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 2011-01-13
      • 2011-12-25
      • 2010-09-23
      • 2012-01-24
      • 1970-01-01
      • 2019-07-26
      相关资源
      最近更新 更多