java - 如何配置 Jersey (javax.ws.rs.*) 以重用 ssl session

标签 java ssl jax-rs jersey-2.0 keep-alive

我已经编写了一个测试客户端,它使用 Jersey 库通过 TLS 发送请求。我很难弄清楚如何配置/编码 Jersey 客户端,以便它重用 SSL session ,以便我可以更快地进行测试。 Jersey 客户端默认使用 HTTP keepAlive;这意味着它保持 TCP 连接打开并重用它们,但它似乎对 SSL session 没有做同样的事情。

如果有人对此有任何经验,请告诉我。

这是我用来设置 Jersey 客户端的代码片段以及我用来发送请求的代码:

        SSLContext sslContext = sslConfig.createSSLContext().getInstance(tlsVersion);
        sslContext.init(keyManagerFactory.getKeyManagers(), trustAllCerts, new SecureRandom());
        SSLEngine sslEngine = sslContext.createSSLEngine("qa.p.uvvu.com", 7001);

        Client client =  ClientBuilder.newBuilder().sslContext(sslContext)
                .hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String hostname, SSLSession session) {
                        return true;
                    }
                }).build();


    response = client.target(uri).request()
            .headers(multivaluedMap).post(Entity.entity(object, MediaType.APPLICATION_XML_TYPE));

最佳答案

为此我使用 Apache 连接器:

HttpClientConnectionManager connManager = PoolingHttpClientConnectionManager();

ClientConfig clientConfig = new ClientConfig();
clientConfig.connectorProvider(new ApacheConnectorProvider());
clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connManager);

Client client = ClientBuilder.newClient(clientConfig);

您可以配置 HttpClientConnectionManager根据您希望在池中保留多少个连接以及您希望将它们保留在池中多长时间来满足您的需求。

免责声明:我没有随身携带代码,因此上面的代码可能无法 100% 运行。

关于java - 如何配置 Jersey (javax.ws.rs.*) 以重用 ssl session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29066182/

相关文章:

java - ListIterator 抛出 "Exception in thread "main“java.util.ConcurrentModificationException”Java

使用缓冲区和线程进行 Java TCP byteArray 传输

java - 翻译图像而不是子图像复制

python - 使用 openssl、requests 和 wincertstore 获取客户端证书

java - @Context 对象从哪里来

java - java中的字符串创建

在 Linux 上使用 OpenJDK 13 + 14 调用时 Java SSLContext.init() 挂起

javascript - HTTPS协议(protocol)的前端(客户端浏览器)是否需要密码加密?

java - 如何使用 Jersey REST 处理服务不可用的场景

java - 在 web.xml 中配置路径时,REST API 返回 404 NOT FOUND