Я использую Apache Camel 2.17.1, и у меня есть некоторые проблемы с настройкой аутентификации клиента SSL на компоненте Jetty (http://camel.apache.org/jetty.html). Первая часть с сервером SSL работает плавно (настройка серверного хранилища ключей и доступ к конечной точке HTTPS из браузера). Теперь я пытаюсь обогатить приложение, добавив еще один маршрут (с другим http-портом), где требуется сертификат клиента.Как настроить соединитель Jetty SSL с Camel 2.17+
Из документации, это может быть достигнуто, поскольку свойства SSL не подвергаются непосредственно Camel:
<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent">
<property name="sslSocketConnectors">
<map>
<entry key="8043">
<bean class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<property name="password"value="..."/>
<property name="keyPassword"value="..."/>
<property name="keystore"value="..."/>
<property name="needClientAuth"value="..."/>
<property name="truststore"value="..."/>
</bean>
</entry>
</map>
</property>
Это швы как документация не была обновлена, потому что эти имена полей больше не существует в SslContextFactory. Мне удается найти других кандидатов, но получил ошибку:
"org.eclipse.jetty.server.ssl.SslSelectChannelConnector" class doesn't exist anymore.
The JettyHttpComponent.setSslSocketConnectors() method accepts Connector interface objects.
Может кто-нибудь помочь мне в поиске решения на основе новых версий Apache Camel (как 2,17)?
Похоже, [Camel 2.17 использует новые соединители Jetty 9] (https://github.com/apache/camel/blob/camel-2.17.1/components/camel-jetty-common/src/main/java /org/apache/camel/component/jetty/JettyHttpComponent.java#L623-L629), и документация для него не была обновлена. (Примечание: 'SslSelectChannelConnector' является старым классом для Jetty 8 и старше) –