微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ning async http 客户端 1.9:设置 SSLParametersSNI 主机名的正确方法

如何解决Ning async http 客户端 1.9:设置 SSLParametersSNI 主机名的正确方法

以下代码在 1.8 版中有效。 更新到 1.9 版后,删除了 setSSLEngineFactory 方法。 有没有优雅的方法来实现与 1.8 版本类似的方法

    Builder builder = new AsyncHttpClientConfig.Builder();
    try {
        builder.setSSLContext(sslContext);
        builder.setSSLEngineFactory(new SSLEngineFactory() {
            public SSLEngine newSSLEngine() throws GeneralSecurityException {
                if (sslContext != null) {
                    SSLEngine sslEngine = sslContext.createSSLEngine();
                    String sniHostname = null;
                    try {
                        URI uri = new URI(baseURI);
                        sniHostname = uri.getHost();
                    } catch (URISyntaxException e) {
                        LOGGER.warn("Failed to init URI",e);
                    }
                    if (sniHostname != null) {
                        List sniHostNames = new ArrayList(1);
                        sniHostNames.add(new SNIHostName(sniHostname));
                        SSLParameters sslParameters = new SSLParameters();
                        sslParameters.setServerNames(sniHostNames);
                        sslEngine.setSSLParameters(sslParameters);
                    }
                    sslEngine.setUseClientMode(true);
                    return sslEngine;
                } else {
                    return null;
                }
            }
        });
    } catch (Exception e) {
        LOGGER.error("Failed to init http builder",e);
    }
    AsyncHttpClientConfig config = builder.build();
    client = new AsyncHttpClient();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。