gpt4 book ai didi

java - Spring Integration TCP 连接工厂 SSL - 使用 java keystore

转载 作者:行者123 更新时间:2023-11-30 04:32:31 25 4
gpt4 key购买 nike

更新已在 Spring Integration 2.2.1 中修复

我有一个tcp-connection-factory

<int-ip:tcp-connection-factory id="tranServer" type="client" host="127.0.0.1" port="1234"
single-use="true" ssl-context-support="sslContext" />

<bean id="sslContext" class="org.springframework.integration.ip.tcp.connection.support.DefaultTcpSSLContextSupport">
<constructor-arg value="client.ks" />
<constructor-arg value="client.truststore.ks" />
<constructor-arg value="secret" />
<constructor-arg value="secret" />
</bean>

我想对 SSL 上下文使用默认的 java keystore ,因为安装过程的一部分是将 SSL 证书加载到其中。如何指定默认 keystore 和信任库密码。

最佳答案

更新已在 Spring Integration 2.2.1 中修复

本质上,问题在于 DefaultTcpSSLContextSupport 在方法 getSSLContext() 中从 ClassPathResource 加载 keystore 和信任库

ks.load(new FileInputStream(new ClassPathResource(keyStore).getFile()), keyStorePassword);
ts.load(new FileInputStream(new ClassPathResource(trustStore).getFile()), trustStorePassword);

我创建了自己的 FileTcpSSLContextSupport 类,该类删除了 ClassPathResource

ks.load(new FileInputStream(keyStore), keyStorePassword);
ts.load(new FileInputStream(trustStore), trustStorePassword);

然后我创建 bean

<bean id="sslContext" class="com.liquidtelecoms.tillintegration.FileTcpSSLContextSupport">
<constructor-arg value="${java.home}/lib/security/cacerts" />
<constructor-arg value="${java.home}/lib/security/cacerts" />
<constructor-arg value="changeit" />
<constructor-arg value="changeit" />
</bean>

关于java - Spring Integration TCP 连接工厂 SSL - 使用 java keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com