Как настроить SSL для вызова других служб REST через динамический URL-адрес в методе Apache Camel todJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как настроить SSL для вызова других служб REST через динамический URL-адрес в методе Apache Camel tod

Сообщение 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/${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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»