使用SSL连接到Tibco EMS时出现javax.crypto.BadPaddingException

卢卡斯

本主题是先前情况的延续:如何在Weblogic 11g上设置到ActiveMQ的JMS桥,但是现在使用Tibco作为源JMS桥目标。

尝试从JMS桥配置连接到Tibco EMS时出现以下错误:

javax.jms.JMSSecurityException: Error occured while reading identity data: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
at com.tibco.tibjms.TibjmsSSL._identityFromStore(TibjmsSSL.java:2664)
at com.tibco.tibjms.TibjmsSSL.createIdentity(TibjmsSSL.java:2569)
at com.tibco.tibjms.TibjmsxLinkSSL._initSSL(TibjmsxLinkSSL.java:309)
at com.tibco.tibjms.TibjmsxLinkSSL.connect(TibjmsxLinkSSL.java:390)
at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1274)
at com.tibco.tibjms.TibjmsConnection.<init>(TibjmsConnection.java:4100)
at com.tibco.tibjms.TibjmsQueueConnection.<init>(TibjmsQueueConnection.java:36)
at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:200)
at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:253)
at com.tibco.tibjms.TibjmsQueueConnectionFactory.createQueueConnection(TibjmsQueueConnectionFactory.java:87)
at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:364)
at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:244)
at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)

jndi.properties内容:

com.tibco.tibjms.naming.security_protocol=ssl
com.tibco.tibjms.naming.ssl_enable_verify_host=false
com.tibco.tibjms.naming.ssl_enable_verify_hostname=false
com.tibco.tibjms.naming.ssl_vendor=j2se
com.tibco.tibjms.naming.ssl_expected_hostname=test
com.tibco.tibjms.naming.ssl_identity=/home/oracle/keys/test.p12
com.tibco.tibjms.naming.ssl_password=pass

#DEBUG
com.tibco.tibjms.naming.ssl_trace=true
com.tibco.tibjms.naming.ssl_debug_trace=true

com.tibco.tibjms.debug=true
com.tibco.tibjms.ssl.debug.trace=true
com.tibco.tibjms.ssl.trace=true

编辑:我已经达到了它所在的异常的根本原因:

// sun.security.rsa.RSAPadding.unpadV15()
if (paramArrayOfByte[(i++)] != 0) {
    throw new BadPaddingException("Data must start with zero"); 
}

有任何想法吗?

您需要了解,连接到TIBCO EMS分为两个阶段(如果仅使用私有API,则可以分为1个步骤),第一个阶段是创建与EMS的JNDI连接并查找connectionfactory定义,这是当您将属性在jndi.properties中设置将变得有用。

查找返回后,可以使用检索到的ConnectionFactory对象创建实际的连接。您面临的问题是在此阶段没有为客户端私钥提供密码。

如果您已阅读文档,EMS将尝试使用您传递给ConnectionFactory.createConnection(String userName,String password)的密码。应该有一个地方/属性文件,您可以在其中设置那些托管环境中ConnectionFactory.createConnection()的密码。

而且我猜想这是避免在托管环境中调用私有API(例如com.tibco.tibjms.TibjmsSSL.setPassword(pass))的唯一方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

javax.crypto.BadPaddingException

javax.crypto.BadPaddingException:解密错误使用Java RSA加密时,

RSA解密期间的javax.crypto.BadPaddingException

javax.crypto.BadPaddingException:解密错误

Java RSA实现:javax.crypto.BadPaddingException

AES加密期间出现javax.crypto.BadPaddingException错误

javax.crypto.BadPaddingException:当我尝试使用私钥解密RSA字符串时发生解密错误

Python与Kotlin AES通信(javax.crypto.BadPaddingException)

javax.crypto.BadPaddingException:填充块损坏的异常

我有javax.crypto.BadPaddingException:RSA密码术

解密RSA数据Java时出错:javax.crypto.BadPaddingException:解密错误

使用RSA解密时出现BadPaddingException

javax.crypto.BadPaddingException:给定的最终块未正确填充-AES / CBC / PKCS5PADDING

java aes javax.crypto.BadPaddingException:给定的最终块未正确填充

javax.crypto.BadPaddingException:给定最终块未正确填充-奇怪的错误

为什么我收到javax.crypto.BadPaddingException(AES / CBC / PKCS5Padding)

错误decrjavax.crypto.BadPaddingException:给定最终块未正确填充。如果在解密过程中使用了错误的密钥,则会出现此类问题

使用相同密钥解密AES时出现BadPaddingException

正在获取“原因:无法解密安全内容条目:javax.crypto.BadPaddingException:给定的最终块未正确填充”

javax.crypto.BadPaddingException:解密错误:仅从数据库解密到一个已经加密的字符串时

解密时出现 javax.crypto.IllegalBlockSizeException

解密时的AES BadPaddingException

解密时出现错误javax.crypto.IllegalBlockSizeException:

使用Qt程序构建crypto ++时出现链接器错误

连接到Tibco EMS 8.2时Hermes JMS中的身份验证错误

尝试解密指纹API密码时出现BadPaddingException

从其他客户端解密RSA时出现BadPaddingException

使用nodejs / Javascript的Tibco EMS连接

Weblogic,带有ejb3的Tibco SSL:javax.jms.JMSSecurityException:无法连接到任何服务器