【问题标题】:How to setup TLS Server to authenticate client in spring integration?如何设置 TLS 服务器以在 Spring 集成中对客户端进行身份验证?
【发布时间】:2016-10-11 19:12:13
【问题描述】:

请参阅Running the client with SSL/TLS。这解释了服务器进行客户端身份验证的场景。我正在使用 Spring Integration 来处理 TLS 连接。我的 spring-context 文件是:

   <bean id="sslContextSupport"
        class="org.springframework.integration.ip.tcp.connection.DefaultTcpSSLContextSupport">
        <constructor-arg value="file:keystore.jks"/>
        <constructor-arg value="file:truststore.jks"/>
        <constructor-arg value="keystorepass"/>
        <constructor-arg value="trustpass"/>
    </bean>

    <int-ip:tcp-connection-factory id="crLfServer"
            type="server"
            port="${availableServerSocket}"
            single-use="true"
            so-timeout="10000"
            using-nio="false"
            ssl-context-support="sslContextSupport" />

我的服务器正在接受 SSL 连接并使用安装在我的服务器和客户端上的证书进行处理。 我不确定是否为客户端身份验证设置了上述 spring 配置。客户端身份验证是在 SSL 传输级别还是在应用程序代码中完成的?

【问题讨论】:

    标签: java ssl tcp spring-integration


    【解决方案1】:

    Spring 集成DefaultTcpSSLContextSupport 完全基于SSLContext sslContext = SSLContext.getInstance(protocol);。因此,您在标准 Java SSL/TLS 文档中看到的内容也适用于此。

    既然你的&lt;int-ip:tcp-connection-factory&gt;产生了type="server",那肯定是这样的

    服务器做客户端认证

    如果这是问题的话,所有繁重的 SSL 工作都在 SSLContext 层中完成,而不是在 TcpNetServerConnectionFactory 中。

    换句话说:它是否是 Spring Integration 并不重要。一切都与使用标准 SSL/TLS 方法的任何其他 Java 应用程序中的工作方式相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      相关资源
      最近更新 更多