如何解决如何在Java中使用apache qpid库和动态证书字符串而不是证书的路径创建amqp连接
当前通过覆盖JmsConnectionFactory(qpid apache)的setRemoteURI(“”)创建amqp连接 application-context.xml
<bean id="amqpConfig" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory">
<bean class="com.abc.AMQPSConnectionFactory">
</bean>
</property>
</bean>
<bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
<property name="testConnectionOnStartup" value="true" />
<property name="configuration" ref="amqpConfig" />
</bean>
我的AMQPSConnectionFactory-当前正在通过覆盖JmsConnectionFactory的setRemoteURI(“”),使用给定的KEYSTORELOCATION,KEYSTOREPASSWORD,KEYSTORETYPE创建amqp连接,如图所示
public class AMQPSConnectionFactory extends JmsConnectionFactory {
public AMQPSConnectionFactory() {
setRemoteURI("URL?jms.prefetchPolicy.queuePrefetch=true&transport.keyStoreLocation=KEYSTORELOC&transport.keyStorePassword=KEYSTOREPASSWORD&transport.keyStoreType=KEYSTORETYPE&transport.trustAll=true&transport.enabledProtocols=TLSv1.2");
}
}
如何通过在运行时传递以64位编码的CERTIFICATE字符串(而不是KEYSTORELOCATION),该证书的以64位编码的PASSWORD(代替KEYSTOREPASSWORD)和KEYSTORETYPE来创建amqp连接?
问题:我无法将证书保留在某个路径上(在uri中提供KEYSTORELOCATION),但需要使用证书字符串本身
解决方法
与您要查询的内容最接近的匹配项是SSLContext覆盖,它允许您提供自己的SSLContext,供客户端在SSL握手期间使用。没有直接向连接工厂提供证书的机制,我怀疑是否会添加任何此类机制。
JmsConnectionFactory factory = new JmsConnectionFactory("amqps://localhost:5673");
factory.setSslContext(<your-own-context>);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。