Как настроить TLS Server для аутентификации клиента в весенней интеграции?

Ссылаться наЗапуск клиента с SSL / TLS, Это объясняет сценарий, когда сервер выполняет аутентификацию клиента. Я использую Spring Integration для обработки соединений 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-транспорта или в коде приложения?

Ответы на вопрос(1)

Решение Вопроса

Весенняя интеграцияDefaultTcpSSLContextSupport полностью основан наSSLContext sslContext = SSLContext.getInstance(protocol);, Итак, то, что вы видите в стандартной документации Java SSL / TLS, применяется и здесь.

Так как ваш<int-ip:tcp-connection-factory> производит тип = "сервер", это определенно случай

сервер выполняет аутентификацию клиента

Вся тяжелая работа SSL выполняется вSSLContext слой, а не вTcpNetServerConnectionFactory, если это вопрос.

Другими словами: не важно, что это Spring Integration или нет. Все работает так же, как и в любом другом приложении Java, которое использует стандартный подход SSL / TLS.

Ваш ответ на вопрос