【发布时间】:2021-01-17 11:01:25
【问题描述】:
当前通过覆盖 JmsConnectionFactory(qpid apache) 的 setRemoteURI("") 创建 amqp 连接 应用程序上下文.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");
}
}
如何通过在运行时传递 base 64 编码的 CERTIFICATE 字符串(而不是 KEYSTORELOCATION)、该证书的 base 64 编码的 PASSWORD(而不是 KEYSTOREPASSWORD)和 KEYSTORETYPE 来创建 amqp 连接?
问题:我无法将证书保存在路径中(在 uri 中提供 KEYSTORELOCATION),但需要使用证书字符串本身
【问题讨论】:
标签: java ssl dynamic amqp qpid