1

在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 密钥库,因为安装过程的一部分是将 SSL 证书加载到其中。如何指定默认密钥库和信任库密码。

4

1 回答 1

2

在Spring Integration 2.2.1中修复了更新

本质上,问题是从方法中的DefaultTcpSSLContextSupporta 加载密钥库和信任库ClassPathResourcegetSSLContext()

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 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>
于 2013-01-14T08:29:51.543 回答