gpt4 book ai didi

java - 如何使用 Apache HTTP 组件为每个路由配置 SSLSocket 工厂

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:10 24 4
gpt4 key购买 nike

有没有办法为 Apache HTTP 客户端中的每个路由设置单独的 SSL 上下文工厂。从文档中我只能看到我们可以按方案而不是按路由配置 SSLContextFactory。

Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", plainsf)
.register("https", sslsf)
.build();

HttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(r);
HttpClients.custom()
.setConnectionManager(cm)
.build();

我的所有目标端点都受 HTTPS 保护,并强制执行客户端证书身份验证。对于这些端点中的每一个,我必须选择一个特定的客户端证书并将其呈现给端点服务器。目前我看到的唯一方法是为每个目标端点路由创建一个单独的 HTTPClient 实例并使用 SSLContext Factory 实例进行配置。

我在这里寻找改进此设计的任何指示。

谢谢。

最佳答案

我已经在 Apache HTTP 客户端论坛上发布了这个问题,并获得了如何处理这个问题的解决方案。

One can use 'http.socket-factory-registry' context attribute to that end but please note this feature is considered undocumented.

http://hc.apache.org/httpcomponents-client-4.5.x/httpclient/xref/org/apache/http/impl/conn/DefaultHttpClientConnectionOperator.html#66

Please also note that one can build a custom ConnectionSocketFactory that makes use of custom context attributes when creating SSL sockets. That would be the recommended way to solve the issue.

关于java - 如何使用 Apache HTTP 组件为每个路由配置 SSLSocket 工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36528259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com