2016-06-10 44 views
1

請參考Running the client with SSL/TLS。這解釋了服務器執行客戶端身份驗證的場景。我正在使用Spring集成來處理TLS連接。我的春天背景文件是:如何在春季集成中設置TLS服務器來驗證客戶端?

<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連接並使用安裝在我的服務器和客戶端上的證書進行處理。 我不確定上述彈簧配置是否爲客戶端身份驗證設置。客戶端身份驗證是在SSL transaport級別還是在應用程序代碼中完成的?

回答

1

Spring Integration DefaultTcpSSLContextSupport完全基於SSLContext sslContext = SSLContext.getInstance(protocol);。因此,您在標準Java SSL/TLS文檔中看到的內容也適用於此處。

自從你們<int-ip:tcp-connection-factory>生產型=「服務器」,那肯定是

的情況下,服務器做客戶端身份驗證

所有困難的SSL工作是在SSLContext層完成,不在TcpNetServerConnectionFactory,如果這是問題。

換言之:無論它是否是Spring Integration都沒關係。一切和用戶使用標準SSL/TLS方法的其他Java應用程序一樣。

相關問題