Доброе утро, в настоящее время я работаю с Apache Camel и Quarkus, и мне впервые представлен сценарий, которого раньше со мной не случалось, теперь я работаю с динамическим URL-адресом следующего типа для вызова:
https://localhost:8080/users/{user}/customers
Эти службы поддерживают SSL, поэтому необходимо настроить вызов SSL. Для нединамического URL-адреса я использовал следующую строку:
.to(configureSsl.setupSSLContext(getCamelContext(), "https://localhost:8081/api/FindPrepaidAccountByDocument"))
Где мой класс ConfigureSSL выглядит следующим образом:
package org.tmve.customer.ms.route;
import lombok.extern.slf4j.Slf4j;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.component.http.HttpComponent;
import org.apache.camel.support.jsse.KeyManagersParameters;
import org.apache.camel.support.jsse.KeyStoreParameters;
import org.apache.camel.support.jsse.SSLContextParameters;
import org.apache.camel.support.jsse.TrustManagersParameters;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.eclipse.microprofile.config.ConfigProvider;
@Slf4j
public class ConfigureSsl {
private String password = ConfigProvider.getConfig().getValue("client.password", String.class);
private String resource = ConfigProvider.getConfig().getValue("client.file", String.class);
public Endpoint setupSSLContext(CamelContext camelContext, String url) throws Exception {
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
/*log.info(resource);*/
/*log.info(password);*/
keyStoreParameters.setResource(resource);
keyStoreParameters.setPassword(password);
KeyManagersParameters keyManagersParameters = new KeyManagersParameters();
keyManagersParameters.setKeyStore(keyStoreParameters);
keyManagersParameters.setKeyPassword(password);
/*log.info("keyManagersParameters "+ keyManagersParameters);*/
TrustManagersParameters trustManagersParameters = new TrustManagersParameters();
trustManagersParameters.setKeyStore(keyStoreParameters);
/*log.info("trustManagersParameters "+ trustManagersParameters);*/
SSLContextParameters sslContextParameters = new SSLContextParameters();
sslContextParameters.setKeyManagers(keyManagersParameters);
sslContextParameters.setTrustManagers(trustManagersParameters);
/*log.info("sslContextParameters "+ sslContextParameters);*/
HttpComponent httpComponent = camelContext.getComponent("https", HttpComponent.class);
httpComponent.setSslContextParameters(sslContextParameters);
httpComponent.setX509HostnameVerifier(new AllowAllHostnameVerifier());
/*log.info("httpComponent "+ httpComponent); */
return httpComponent.createEndpoint(url);
}
}
Но теперь для динамического URL-адреса мне нужно использовать метод toD Apache Camel для динамического URL-адреса, однако я не знаю, как настроить часть SSL в динамическом URL-адресе в методе toD, то, что я использовал для метода нединамического URL-адреса, не работает для меня в методе toD
Я пробовал так, но это выдает ошибку в строке:
.toD(configureSsl.setupSSLContext(getCamelContext(),"https://localhost:8080/users/${exchange ... point=true"))
Что я могу сделать в этом случае, чтобы добавить конфигурацию SSL к моему динамическому URL-адресу в Apache Camel с помощью метода toD, в противном случае я получаю следующую ошибку:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Подробнее здесь: https://stackoverflow.com/questions/768 ... n-apcahe-c
Как настроить SSL для вызова других служб REST через динамический URL-адрес в методе Apache Camel tod ⇐ JAVA
Программисты JAVA общаются здесь
1765827273
Anonymous
Доброе утро, в настоящее время я работаю с Apache Camel и Quarkus, и мне впервые представлен сценарий, которого раньше со мной не случалось, теперь я работаю с динамическим URL-адресом следующего типа для вызова:
https://localhost:8080/users/{user}/customers
Эти службы поддерживают SSL, поэтому необходимо настроить вызов SSL. Для нединамического URL-адреса я использовал следующую строку:
.to(configureSsl.setupSSLContext(getCamelContext(), "https://localhost:8081/api/FindPrepaidAccountByDocument"))
Где мой класс ConfigureSSL выглядит следующим образом:
package org.tmve.customer.ms.route;
import lombok.extern.slf4j.Slf4j;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.component.http.HttpComponent;
import org.apache.camel.support.jsse.KeyManagersParameters;
import org.apache.camel.support.jsse.KeyStoreParameters;
import org.apache.camel.support.jsse.SSLContextParameters;
import org.apache.camel.support.jsse.TrustManagersParameters;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.eclipse.microprofile.config.ConfigProvider;
@Slf4j
public class ConfigureSsl {
private String password = ConfigProvider.getConfig().getValue("client.password", String.class);
private String resource = ConfigProvider.getConfig().getValue("client.file", String.class);
public Endpoint setupSSLContext(CamelContext camelContext, String url) throws Exception {
KeyStoreParameters keyStoreParameters = new KeyStoreParameters();
/*log.info(resource);*/
/*log.info(password);*/
keyStoreParameters.setResource(resource);
keyStoreParameters.setPassword(password);
KeyManagersParameters keyManagersParameters = new KeyManagersParameters();
keyManagersParameters.setKeyStore(keyStoreParameters);
keyManagersParameters.setKeyPassword(password);
/*log.info("keyManagersParameters "+ keyManagersParameters);*/
TrustManagersParameters trustManagersParameters = new TrustManagersParameters();
trustManagersParameters.setKeyStore(keyStoreParameters);
/*log.info("trustManagersParameters "+ trustManagersParameters);*/
SSLContextParameters sslContextParameters = new SSLContextParameters();
sslContextParameters.setKeyManagers(keyManagersParameters);
sslContextParameters.setTrustManagers(trustManagersParameters);
/*log.info("sslContextParameters "+ sslContextParameters);*/
HttpComponent httpComponent = camelContext.getComponent("https", HttpComponent.class);
httpComponent.setSslContextParameters(sslContextParameters);
httpComponent.setX509HostnameVerifier(new AllowAllHostnameVerifier());
/*log.info("httpComponent "+ httpComponent); */
return httpComponent.createEndpoint(url);
}
}
Но теперь для динамического URL-адреса мне нужно использовать метод toD Apache Camel для динамического URL-адреса, однако я не знаю, как настроить часть SSL в динамическом URL-адресе в методе toD, то, что я использовал для метода нединамического URL-адреса, не работает для меня в методе toD
Я пробовал так, но это выдает ошибку в строке:
.toD(configureSsl.setupSSLContext(getCamelContext(),"https://localhost:8080/users/${exchangeProperty[user_id]}/customers?bridgeEndpoint=true"))
Что я могу сделать в этом случае, чтобы добавить конфигурацию SSL к моему динамическому URL-адресу в Apache Camel с помощью метода toD, в противном случае я получаю следующую ошибку:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Подробнее здесь: [url]https://stackoverflow.com/questions/76841965/how-to-configure-ssl-to-call-other-rest-services-through-dynamic-url-in-apcahe-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия