Как мне настроить Reactor-Netty для использования SSL?

Я пытаюсь ознакомиться с Spring Project Reactor (https://projectreactor.io/) и создал небольшое приложение. для выполнения вызовов REST к другой службе через SSL. Я не могу найти способ настроить org.springframework.web.client.reactive.WebClient для отправки запросов через SSL. Документов по этому поводу вроде бы нет. Я использую reactor-core 3.0.0.RC1 и reactor-netty 0.5.0.M3, а также Spring Framework 5.0.0.M1. Кто-нибудь знает, как настроить reactor-netty с поддержкой SSL?


person mrpeachum    schedule 15.08.2016    source источник


Ответы (1)


Обновление от 04.01.2017:

Это было исправлено в версии 5.0.0.M4 Spring Framework с этот патч.

Исходный ответ:

Я обнаружил, что решение состоит в том, чтобы создать новую реализацию ClientHttpConnector, поддерживающую SSL.

public class ReactorClientHttpsAwareConnector implements ClientHttpConnector {

    @Override
    public Mono<ClientHttpResponse> connect(HttpMethod method, URI uri,
                                            Function<? super ClientHttpRequest, Mono<Void>> requestCallback) {

        return reactor.ipc.netty.http.HttpClient.create()
                                                .request(io.netty.handler.codec.http.HttpMethod.valueOf(method.name()),
                                                    uri.toString(),
                                                    httpClientRequest -> requestCallback
                                                        .apply(new ReactorClientHttpRequest(method, uri, httpClientRequest)))
                                                .cast(HttpInbound.class)
                                                .otherwise(HttpException.class, exc -> Mono.just(exc.getChannel()))
                                                .map(ReactorClientHttpResponse::new);
    }
}

HttpClient.create() требуется, чтобы клиент поддерживал SSL.

person mrpeachum    schedule 16.08.2016