2016-08-15 26 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対応にするために必要です。

関連する問題