gpt4 book ai didi

java - 将 ssl 与 Apache HttpCore 4.4.3 中的 org.apache.http.impl.bootstrap.HttpServer 结合使用的示例

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

我已经使用 https://hc.apache.org.httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/HttpFileServer.java 中的示例成功创建了一个嵌入式 HttpServer ,它可以很好地处理 http: 流量。现在我想扩展它以支持 TLS。

我从这里复制了一些看起来很像的代码:https://hc.apache.org/httpcomponents-core-ga/tutorial/html/blocking-io.html#d5e455

但它的某些部分显示为已弃用,这让我想知道这个示例是否已过时以及我所在的树是否是我应该吠叫的树。即使情况并非如此,我也无法找到 HttpServer 和 DefaultBHttpClientConnection 之间的关系(在示例中提到)。我怀疑我应该使用 DefaultBHttpServerConnection,但到目前为止我也找不到。

有没有更新的例子?

Michael D. Spence模仿鸟数据系统公司

最佳答案

我不确定是否理解您遇到的问题。您只需要向 ServerBoostrap 提供一个正确初始化的 SSLContext 实例。 HttpCore 附带 SSLContextBuilder,专门用于简化 SSLContext 初始化过程。

HttpCore 发行版中包含的示例几乎展示了设置 SSL/TLS 传输层所需的每个步骤。

SSLContext sslcontext = null;
if (port == 8443) {
// Initialize SSL context
URL url = HttpFileServer.class.getResource("/my.keystore");
if (url == null) {
System.out.println("Keystore not found");
System.exit(1);
}
sslcontext = SSLContexts.custom()
.loadKeyMaterial(url, "secret".toCharArray(), "secret".toCharArray())
.build();
}

SocketConfig socketConfig = SocketConfig.custom()
.setSoTimeout(15000)
.setTcpNoDelay(true)
.build();

final HttpServer server = ServerBootstrap.bootstrap()
.setListenerPort(port)
.setServerInfo("Test/1.1")
.setSocketConfig(socketConfig)
.setSslContext(sslcontext)
.setExceptionLogger(new StdErrorExceptionLogger())
.registerHandler("*", new HttpFileHandler(docRoot))
.create();

server.start();

关于java - 将 ssl 与 Apache HttpCore 4.4.3 中的 org.apache.http.impl.bootstrap.HttpServer 结合使用的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618108/

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