【问题标题】:Spring Integration TCP connection factory SSL - Use java keystoreSpring Integration TCP 连接工厂 SSL - 使用 java keystore
【发布时间】:2013-01-29 21:37:00
【问题描述】:

更新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 证书加载到其中。如何指定默认密钥库和信任库密码。

【问题讨论】:

    标签: java spring spring-integration


    【解决方案1】:

    更新Spring Integration 2.2.1中修复

    本质上问题是DefaultTcpSSLContextSupport 在方法getSSLContext() 中从ClassPathResource 加载密钥库和信任库

    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>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 2011-02-11
    • 2016-06-17
    • 2016-06-02
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多