2016-08-15 3 views
0

저는 Spring의 Project Reactor (https://projectreactor.io/)에 익숙해 지려고 노력하고 있으며 SSL을 통해 다른 서비스로 REST를 호출하기 위해 작은 애플리케이션을 만들었습니다. 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을 사용하고 있습니다. 누구든지 SSL을 지원하는 reactor-netty을 구성하는 방법을 알고 있습니까?어떻게하면 reactor-netty가 SSL을 사용하도록 구성 할 수 있습니까?

답변

0

업데이트 2017년 1월 4일는 :

this patch와 스프링 프레임 워크의 5.0.0.M4 릴리스에서 수정되었습니다.

원래 답변 :

나는이 솔루션은 SSL을 존중하는 새로운 ClientHttpConnector 구현을 만드는 것입니다 것을 발견했다.

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을 인식하도록하기 위해 필요합니다.

관련 문제