首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将反应堆网络配置为使用SSL?

如何将反应堆网络配置为使用SSL?
EN

Stack Overflow用户
提问于 2016-08-15 15:31:57
回答 1查看 1.6K关注 0票数 0

我正在尝试熟悉Spring的项目反应堆(https://projectreactor.io/),并构建了一个小型应用程序,通过SSL对另一个服务进行REST调用。我找不到任何方法来配置org.springframework.web.client.reactive.WebClient来通过SSL发出请求。似乎没有这方面的文件。我使用的是reactor-core 3.0.0.RC1和reactor-netty 0.5.0.M3以及SpringFramework5.0.0.M1。有人知道如何配置带有SSL支持的reactor-netty吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-16 09:52:25

更新2017-01-04:

在用https://github.com/spring-projects/spring-framework/commit/64bc0ca744781af2bf96412ced0f439fc98ee00d发布的Spring的5.0.0.M4版本中纠正了这一点。

原始答案:

我发现解决方案是创建一个尊重SSL的新ClientHttpConnector实现。

代码语言:javascript
复制
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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38958165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档