Spring Boot SSL TCPClient ~ StompBrokerRelayMessageHandler ~ RabbitMQ - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать POC для сервера веб-сокетов на основе Spring с Rabbitmq в качестве брокера сообщений STOMP. Приложение работает нормально на незащищенных соединениях. Однако у меня возникают трудности при настройке ретранслятора STOMP Broker для пересылки по SSL-соединениям. Мой код похож на this . Я добавил необходимые конфигурации, но я не уверен, как настроить значение по умолчанию SSLContext перед возвратом объекта tcpClientSpec. Если я не установил sslcontext, мое приложение ищет конфигурацию, связанную с хранилищем ключей. Я попытался установить конфигурацию, связанную с хранилищем доверенных сертификатов, в ssloption из TCPClientSpec, но все еще ищет конфигурацию хранилища ключей.

Мой класс StompTCP:

@Override
public Spec.TcpClientSpec<Message<byte[]>, Message<byte[]>> apply(Spec.TcpClientSpec<Message<byte[]>, Message<byte[]>> tcpClientSpec) {
    return tcpClientSpec
            .env(environment)
            .codec(new Reactor2StompCodec(new StompEncoder(), new StompDecoder()))
            .ssl(ssl ? new SslOptions() : null)
            .connect(host, port);
}

Я хочу иметь что-то вроде этого:

 SSLContext sslContext = SSLContext.getInstance("SSL");
 sslContext.init(null, trustMgr, null);          /*only trust manager config and not keystore*/
 SSLSocketFactory socketFactory = sslContext.getSocketFactory();
 socketFactory.createSocket();

Есть ли способ установить это sslcontext в tcpClientSpec.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...