Как переопределить псевдоним хранилища ключей в sslContextParameter в camel

Мы пытаемся использовать SSLContextParameter в camel 2.22.0 с Tomcat для запроса https4.

Наша цель - использовать только одно хранилище для закрытого / открытого ключа с несколькими псевдонимами. Мы загружаем весенний ssContextParameter во время загрузки верблюда, и мы хотим использовать только псевдоним, когда мы определяем конечную точку hhtps4, без определения нового sslContextParameter для каждой конечной точки в нашем маршруте (~ 50 маршрутов).

<camel:sslContextParameters id="sslAPPContextParameters"
        xmlns="http://camel.apache.org/schema/spring" >
        <camel:trustManagers>
            <camel:keyStore password="${truststore.jks.file.password}"
                resource="${truststore.jks.file.location}" />
        </camel:trustManagers>
        <camel:keyManagers>
            <camel:keyStore password="${keystore.jks.file.password}"
                resource="${keystore.jks.file.location}" />
        </camel:keyManagers>
    </camel:sslContextParameters>
</beans>

Является ли это возможным ? Я нашел "sslContextParameters / @ certAlias", но, похоже, для его использования требуется новое определение sslContextParameter, что мне не нужно из-за огромного количества camelRoute.

Заранее спасибо.


person Florian B.    schedule 04.08.2018    source источник
comment
Хорошо, значит, у вас много разных сертификатов в одном хранилище ключей, и вы хотите легче указать, какой сертификат от каждой конечной точки http? Если да, то, возможно, мы можем взглянуть и посмотреть, сможем ли мы что-нибудь сделать в Camel для поддержки этого.   -  person Claus Ibsen    schedule 06.08.2018
comment
Вот и все, я хочу ограничить количество хранилищ ключей (с открытым / закрытым ключом) и хранилища доверенных сертификатов (для открытого сертификата) и хочу только один раз инициализировать параметр sslcontext и выбрать псевдоним моего хранилища ключей в зависимости от конечной точки, которую мне нужно запросить. знаю, что он существует в webMethods, и я хотел бы реализовать это в нашем проекте camel. ИЛИ, если мы не можем использовать один и тот же SSLContextParameter более одного раза, определите новый SSLContextParameter, который ссылается на первый, с псевдонимом. Спасибо заранее.   -  person Florian B.    schedule 07.08.2018
comment
Спасибо, вы можете зарегистрировать заявку JIRA на Apache Camel: camel.apache.org/support.html   -  person Claus Ibsen    schedule 07.08.2018
comment
Привет, Клаус, я только что зарегистрировал билет Jira (извините по-французски) issues.apache.org/ jira / browse / CAMEL-12719   -  person Florian B.    schedule 09.08.2018


Ответы (1)


Насколько я знаю:

  1. Для каждого экземпляра sslContextParameters существует один (и только один) псевдоним сертификата
  2. Компонент HTTP4 поддерживает только один экземпляр SSLContextParameters для каждого компонента (четко объяснено в http://camel.apache.org/http4.html)

Это означает, что ваши маршруты Camel используют одну и ту же конфигурацию SSL, и поэтому не рекомендуется переопределять псевдоним сертификата в нескольких местах (и с другим значением).

Боюсь, что единственное решение - определить N вариантов HTTP-компонента вместе с соответствующим ему SSL conf:

<bean id="httpX" class="org.apache.camel.component.http4.HttpComponent">
   <property name="sslContextParameters" ref="sslContextParams1"/>
</bean>

<bean id="httpY" class="org.apache.camel.component.http4.HttpComponent">
   <property name="sslContextParameters" ref="sslContextParams2"/>
</bean>

а затем используйте соответствующий в своих конечных точках https

person TacheDeChoco    schedule 04.08.2018