Upgraded HttpCore to version 5.3-alpha2
This commit is contained in:
parent
661589e386
commit
8a7f707a61
|
@ -27,7 +27,6 @@
|
||||||
package org.apache.hc.client5.http.cache;
|
package org.apache.hc.client5.http.cache;
|
||||||
|
|
||||||
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,7 +68,7 @@ public class HttpCacheContext extends HttpClientContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HttpCacheContext create() {
|
public static HttpCacheContext create() {
|
||||||
return new HttpCacheContext(new BasicHttpContext());
|
return new HttpCacheContext(new HttpClientContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpCacheContext(final HttpContext context) {
|
public HttpCacheContext(final HttpContext context) {
|
||||||
|
|
|
@ -74,7 +74,6 @@ import org.apache.hc.core5.http.message.RequestLine;
|
||||||
import org.apache.hc.core5.http.nio.AsyncDataConsumer;
|
import org.apache.hc.core5.http.nio.AsyncDataConsumer;
|
||||||
import org.apache.hc.core5.http.nio.AsyncEntityProducer;
|
import org.apache.hc.core5.http.nio.AsyncEntityProducer;
|
||||||
import org.apache.hc.core5.http.nio.CapacityChannel;
|
import org.apache.hc.core5.http.nio.CapacityChannel;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.support.BasicRequestBuilder;
|
import org.apache.hc.core5.http.support.BasicRequestBuilder;
|
||||||
import org.apache.hc.core5.net.URIAuthority;
|
import org.apache.hc.core5.net.URIAuthority;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
|
@ -206,8 +205,8 @@ class AsyncCachingExec extends CachingExecBase implements AsyncExecChainHandler
|
||||||
public AsyncDataConsumer handleResponse(
|
public AsyncDataConsumer handleResponse(
|
||||||
final HttpResponse response,
|
final HttpResponse response,
|
||||||
final EntityDetails entityDetails) throws HttpException, IOException {
|
final EntityDetails entityDetails) throws HttpException, IOException {
|
||||||
context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
context.setRequest(request);
|
||||||
context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
context.setResponse(response);
|
||||||
return asyncExecCallback.handleResponse(response, entityDetails);
|
return asyncExecCallback.handleResponse(response, entityDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.hc.client5.http.impl.cache;
|
package org.apache.hc.client5.http.impl.cache;
|
||||||
|
|
||||||
import java.util.BitSet;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -89,12 +88,12 @@ class CacheControlHeaderParser {
|
||||||
/**
|
/**
|
||||||
* The set of characters that can delimit a token in the header.
|
* The set of characters that can delimit a token in the header.
|
||||||
*/
|
*/
|
||||||
private static final BitSet TOKEN_DELIMS = Tokenizer.INIT_BITSET(EQUAL_CHAR, ',');
|
private static final Tokenizer.Delimiter TOKEN_DELIMS = Tokenizer.delimiters(EQUAL_CHAR, ',');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The set of characters that can delimit a value in the header.
|
* The set of characters that can delimit a value in the header.
|
||||||
*/
|
*/
|
||||||
private static final BitSet VALUE_DELIMS = Tokenizer.INIT_BITSET(EQUAL_CHAR, ',');
|
private static final Tokenizer.Delimiter VALUE_DELIMS = Tokenizer.delimiters(EQUAL_CHAR, ',');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The token parser used to extract values from the header.
|
* The token parser used to extract values from the header.
|
||||||
|
|
|
@ -66,7 +66,6 @@ import org.apache.hc.core5.http.io.entity.StringEntity;
|
||||||
import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
|
import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
|
||||||
import org.apache.hc.core5.http.message.BasicClassicHttpResponse;
|
import org.apache.hc.core5.http.message.BasicClassicHttpResponse;
|
||||||
import org.apache.hc.core5.http.message.RequestLine;
|
import org.apache.hc.core5.http.message.RequestLine;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.net.URIAuthority;
|
import org.apache.hc.core5.net.URIAuthority;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
import org.apache.hc.core5.util.ByteArrayBuffer;
|
import org.apache.hc.core5.util.ByteArrayBuffer;
|
||||||
|
@ -133,8 +132,8 @@ class CachingExec extends CachingExecBase implements ExecChainHandler {
|
||||||
final HttpHost target = authority != null ? new HttpHost(scheme, authority) : route.getTargetHost();
|
final HttpHost target = authority != null ? new HttpHost(scheme, authority) : route.getTargetHost();
|
||||||
final ClassicHttpResponse response = doExecute(target, request, scope, chain);
|
final ClassicHttpResponse response = doExecute(target, request, scope, chain);
|
||||||
|
|
||||||
context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
context.setRequest(request);
|
||||||
context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
context.setResponse(response);
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ public abstract class AbstractSimpleServerExchangeHandler extends AbstractServer
|
||||||
final SimpleHttpRequest request,
|
final SimpleHttpRequest request,
|
||||||
final AsyncServerRequestHandler.ResponseTrigger responseTrigger,
|
final AsyncServerRequestHandler.ResponseTrigger responseTrigger,
|
||||||
final HttpContext context) throws HttpException, IOException {
|
final HttpContext context) throws HttpException, IOException {
|
||||||
final SimpleHttpResponse response = handle(request, HttpCoreContext.adapt(context));
|
final SimpleHttpResponse response = handle(request, HttpCoreContext.cast(context));
|
||||||
final SimpleBody body = response.getBody();
|
final SimpleBody body = response.getBody();
|
||||||
final AsyncEntityProducer entityProducer;
|
final AsyncEntityProducer entityProducer;
|
||||||
if (body != null) {
|
if (body != null) {
|
||||||
|
|
|
@ -42,7 +42,6 @@ import org.apache.hc.core5.http.HttpResponse;
|
||||||
import org.apache.hc.core5.http.HttpStatus;
|
import org.apache.hc.core5.http.HttpStatus;
|
||||||
import org.apache.hc.core5.http.URIScheme;
|
import org.apache.hc.core5.http.URIScheme;
|
||||||
import org.apache.hc.core5.http.config.Http1Config;
|
import org.apache.hc.core5.http.config.Http1Config;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
||||||
import org.apache.hc.core5.net.URIAuthority;
|
import org.apache.hc.core5.net.URIAuthority;
|
||||||
|
@ -207,7 +206,7 @@ public class TestHttp1AsyncStatefulConnManagement extends AbstractIntegrationTes
|
||||||
connManager.setDefaultMaxPerRoute(maxConn);
|
connManager.setDefaultMaxPerRoute(maxConn);
|
||||||
|
|
||||||
// Bottom of the pool : a *keep alive* connection to Route 1.
|
// Bottom of the pool : a *keep alive* connection to Route 1.
|
||||||
final HttpContext context1 = new BasicHttpContext();
|
final HttpContext context1 = new HttpClientContext();
|
||||||
context1.setAttribute("user", "stuff");
|
context1.setAttribute("user", "stuff");
|
||||||
|
|
||||||
final SimpleHttpRequest request1 = SimpleRequestBuilder.get()
|
final SimpleHttpRequest request1 = SimpleRequestBuilder.get()
|
||||||
|
@ -227,7 +226,7 @@ public class TestHttp1AsyncStatefulConnManagement extends AbstractIntegrationTes
|
||||||
|
|
||||||
// Send a very simple HTTP get (it MUST be simple, no auth, no proxy, no 302, no 401, ...)
|
// Send a very simple HTTP get (it MUST be simple, no auth, no proxy, no 302, no 401, ...)
|
||||||
// Send it to another route. Must be a keepalive.
|
// Send it to another route. Must be a keepalive.
|
||||||
final HttpContext context2 = new BasicHttpContext();
|
final HttpContext context2 = new HttpClientContext();
|
||||||
|
|
||||||
final SimpleHttpRequest request2 = SimpleRequestBuilder.get()
|
final SimpleHttpRequest request2 = SimpleRequestBuilder.get()
|
||||||
.setScheme(target.getSchemeName())
|
.setScheme(target.getSchemeName())
|
||||||
|
@ -250,7 +249,7 @@ public class TestHttp1AsyncStatefulConnManagement extends AbstractIntegrationTes
|
||||||
// So the ConnPoolByRoute will need to kill one connection (it is maxed out globally).
|
// So the ConnPoolByRoute will need to kill one connection (it is maxed out globally).
|
||||||
// The killed conn is the oldest, which means the first HTTPGet ([localhost][stuff]).
|
// The killed conn is the oldest, which means the first HTTPGet ([localhost][stuff]).
|
||||||
// When this happens, the RouteSpecificPool becomes empty.
|
// When this happens, the RouteSpecificPool becomes empty.
|
||||||
final HttpContext context3 = new BasicHttpContext();
|
final HttpContext context3 = new HttpClientContext();
|
||||||
|
|
||||||
final SimpleHttpRequest request3 = SimpleRequestBuilder.get()
|
final SimpleHttpRequest request3 = SimpleRequestBuilder.get()
|
||||||
.setHttpHost(target)
|
.setHttpHost(target)
|
||||||
|
|
|
@ -36,6 +36,7 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
||||||
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
||||||
import org.apache.hc.client5.http.io.ConnectionEndpoint;
|
import org.apache.hc.client5.http.io.ConnectionEndpoint;
|
||||||
import org.apache.hc.client5.http.io.LeaseRequest;
|
import org.apache.hc.client5.http.io.LeaseRequest;
|
||||||
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.client5.testing.classic.RandomHandler;
|
import org.apache.hc.client5.testing.classic.RandomHandler;
|
||||||
import org.apache.hc.client5.testing.sync.extension.TestClientResources;
|
import org.apache.hc.client5.testing.sync.extension.TestClientResources;
|
||||||
import org.apache.hc.core5.http.ClassicHttpRequest;
|
import org.apache.hc.core5.http.ClassicHttpRequest;
|
||||||
|
@ -47,7 +48,6 @@ import org.apache.hc.core5.http.URIScheme;
|
||||||
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
||||||
import org.apache.hc.core5.http.io.HttpClientConnection;
|
import org.apache.hc.core5.http.io.HttpClientConnection;
|
||||||
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
|
@ -128,7 +128,7 @@ public class TestConnectionManagement {
|
||||||
final String uri = "/random/" + rsplen;
|
final String uri = "/random/" + rsplen;
|
||||||
|
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("GET", target, uri);
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("GET", target, uri);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
|
|
||||||
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
||||||
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
||||||
|
@ -192,7 +192,7 @@ public class TestConnectionManagement {
|
||||||
final String uri = "/random/" + rsplen;
|
final String uri = "/random/" + rsplen;
|
||||||
|
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("GET", target, uri);
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("GET", target, uri);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
|
|
||||||
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
||||||
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
||||||
|
@ -258,7 +258,7 @@ public class TestConnectionManagement {
|
||||||
connManager.setMaxTotal(1);
|
connManager.setMaxTotal(1);
|
||||||
|
|
||||||
final HttpRoute route = new HttpRoute(target, null, false);
|
final HttpRoute route = new HttpRoute(target, null, false);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
|
|
||||||
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
||||||
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
||||||
|
@ -311,7 +311,7 @@ public class TestConnectionManagement {
|
||||||
connManager.setMaxTotal(1);
|
connManager.setMaxTotal(1);
|
||||||
|
|
||||||
final HttpRoute route = new HttpRoute(target, null, false);
|
final HttpRoute route = new HttpRoute(target, null, false);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
|
|
||||||
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
final LeaseRequest leaseRequest1 = connManager.lease("id1", route, null);
|
||||||
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
final ConnectionEndpoint endpoint1 = leaseRequest1.get(Timeout.ZERO_MILLISECONDS);
|
||||||
|
|
|
@ -45,6 +45,7 @@ import javax.net.ssl.SSLPeerUnverifiedException;
|
||||||
import javax.net.ssl.SSLSession;
|
import javax.net.ssl.SSLSession;
|
||||||
import javax.net.ssl.SSLSocket;
|
import javax.net.ssl.SSLSocket;
|
||||||
|
|
||||||
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
|
import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
|
||||||
import org.apache.hc.client5.http.ssl.HostnameVerificationPolicy;
|
import org.apache.hc.client5.http.ssl.HostnameVerificationPolicy;
|
||||||
import org.apache.hc.client5.http.ssl.HttpsSupport;
|
import org.apache.hc.client5.http.ssl.HttpsSupport;
|
||||||
|
@ -54,8 +55,6 @@ import org.apache.hc.client5.testing.SSLTestContexts;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.impl.bootstrap.HttpServer;
|
import org.apache.hc.core5.http.impl.bootstrap.HttpServer;
|
||||||
import org.apache.hc.core5.http.impl.bootstrap.ServerBootstrap;
|
import org.apache.hc.core5.http.impl.bootstrap.ServerBootstrap;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.apache.hc.core5.io.CloseMode;
|
import org.apache.hc.core5.io.CloseMode;
|
||||||
import org.apache.hc.core5.ssl.SSLContexts;
|
import org.apache.hc.core5.ssl.SSLContexts;
|
||||||
import org.apache.hc.core5.ssl.TrustStrategy;
|
import org.apache.hc.core5.ssl.TrustStrategy;
|
||||||
|
@ -105,7 +104,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
||||||
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
||||||
|
@ -134,7 +133,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(SSLTestContexts.createClientSSLContext());
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(SSLTestContexts.createClientSSLContext());
|
||||||
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
||||||
try (final Socket socket = new Socket(target.getHostName(), target.getPort())) {
|
try (final Socket socket = new Socket(target.getHostName(), target.getPort())) {
|
||||||
|
@ -160,7 +159,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
||||||
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
||||||
|
@ -190,7 +189,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
final TestX509HostnameVerifier hostVerifier = new TestX509HostnameVerifier();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
||||||
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
SSLTestContexts.createClientSSLContext(), hostVerifier);
|
||||||
|
@ -222,7 +221,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
// Use default SSL context
|
// Use default SSL context
|
||||||
final SSLContext defaultSslContext = SSLContexts.createDefault();
|
final SSLContext defaultSslContext = SSLContexts.createDefault();
|
||||||
|
|
||||||
|
@ -255,7 +254,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
final SSLContext sslContext = SSLContexts.custom()
|
final SSLContext sslContext = SSLContexts.custom()
|
||||||
|
@ -288,7 +287,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
||||||
SSLTestContexts.createClientSSLContext());
|
SSLTestContexts.createClientSSLContext());
|
||||||
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
||||||
|
@ -340,7 +339,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
this.server.start();
|
this.server.start();
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
final TlsSocketStrategy tlsStrategy = new DefaultClientTlsStrategy(
|
||||||
SSLTestContexts.createClientSSLContext());
|
SSLTestContexts.createClientSSLContext());
|
||||||
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
final HttpHost target = new HttpHost("https", "localhost", server.getLocalPort());
|
||||||
|
@ -370,7 +369,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
SSLTestContexts.createClientSSLContext(),
|
SSLTestContexts.createClientSSLContext(),
|
||||||
HostnameVerificationPolicy.CLIENT,
|
HostnameVerificationPolicy.CLIENT,
|
||||||
HttpsSupport.getDefaultHostnameVerifier());
|
HttpsSupport.getDefaultHostnameVerifier());
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
||||||
socket,
|
socket,
|
||||||
target1.getHostName(),
|
target1.getHostName(),
|
||||||
|
@ -388,7 +387,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
SSLTestContexts.createClientSSLContext(),
|
SSLTestContexts.createClientSSLContext(),
|
||||||
HostnameVerificationPolicy.CLIENT,
|
HostnameVerificationPolicy.CLIENT,
|
||||||
HttpsSupport.getDefaultHostnameVerifier());
|
HttpsSupport.getDefaultHostnameVerifier());
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
Assertions.assertThrows(SSLPeerUnverifiedException.class, () ->
|
Assertions.assertThrows(SSLPeerUnverifiedException.class, () ->
|
||||||
tlsStrategy.upgrade(
|
tlsStrategy.upgrade(
|
||||||
socket,
|
socket,
|
||||||
|
@ -403,7 +402,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
SSLTestContexts.createClientSSLContext(),
|
SSLTestContexts.createClientSSLContext(),
|
||||||
HostnameVerificationPolicy.CLIENT,
|
HostnameVerificationPolicy.CLIENT,
|
||||||
NoopHostnameVerifier.INSTANCE);
|
NoopHostnameVerifier.INSTANCE);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
||||||
socket,
|
socket,
|
||||||
target1.getHostName(),
|
target1.getHostName(),
|
||||||
|
@ -431,7 +430,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
SSLTestContexts.createClientSSLContext(),
|
SSLTestContexts.createClientSSLContext(),
|
||||||
HostnameVerificationPolicy.BUILTIN,
|
HostnameVerificationPolicy.BUILTIN,
|
||||||
NoopHostnameVerifier.INSTANCE);
|
NoopHostnameVerifier.INSTANCE);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
final SSLSocket upgradedSocket = tlsStrategy.upgrade(
|
||||||
socket,
|
socket,
|
||||||
target1.getHostName(),
|
target1.getHostName(),
|
||||||
|
@ -449,7 +448,7 @@ public class TestDefaultClientTlsStrategy {
|
||||||
SSLTestContexts.createClientSSLContext(),
|
SSLTestContexts.createClientSSLContext(),
|
||||||
HostnameVerificationPolicy.BUILTIN,
|
HostnameVerificationPolicy.BUILTIN,
|
||||||
NoopHostnameVerifier.INSTANCE);
|
NoopHostnameVerifier.INSTANCE);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
Assertions.assertThrows(SSLHandshakeException.class, () ->
|
Assertions.assertThrows(SSLHandshakeException.class, () ->
|
||||||
tlsStrategy.upgrade(
|
tlsStrategy.upgrade(
|
||||||
socket,
|
socket,
|
||||||
|
|
|
@ -43,7 +43,6 @@ import org.apache.hc.core5.http.URIScheme;
|
||||||
import org.apache.hc.core5.http.io.HttpRequestHandler;
|
import org.apache.hc.core5.http.io.HttpRequestHandler;
|
||||||
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
||||||
import org.apache.hc.core5.http.io.entity.StringEntity;
|
import org.apache.hc.core5.http.io.entity.StringEntity;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.testing.classic.ClassicTestServer;
|
import org.apache.hc.core5.testing.classic.ClassicTestServer;
|
||||||
import org.apache.hc.core5.util.Timeout;
|
import org.apache.hc.core5.util.Timeout;
|
||||||
|
@ -217,7 +216,7 @@ public class TestStatefulConnManagement {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Bottom of the pool : a *keep alive* connection to Route 1.
|
// Bottom of the pool : a *keep alive* connection to Route 1.
|
||||||
final HttpContext context1 = new BasicHttpContext();
|
final HttpContext context1 = new HttpClientContext();
|
||||||
context1.setAttribute("user", "stuff");
|
context1.setAttribute("user", "stuff");
|
||||||
client.execute(target, new HttpGet("/"), context1, response -> {
|
client.execute(target, new HttpGet("/"), context1, response -> {
|
||||||
EntityUtils.consume(response.getEntity());
|
EntityUtils.consume(response.getEntity());
|
||||||
|
@ -232,7 +231,7 @@ public class TestStatefulConnManagement {
|
||||||
|
|
||||||
// Send a very simple HTTP get (it MUST be simple, no auth, no proxy, no 302, no 401, ...)
|
// Send a very simple HTTP get (it MUST be simple, no auth, no proxy, no 302, no 401, ...)
|
||||||
// Send it to another route. Must be a keepalive.
|
// Send it to another route. Must be a keepalive.
|
||||||
final HttpContext context2 = new BasicHttpContext();
|
final HttpContext context2 = new HttpClientContext();
|
||||||
client.execute(new HttpHost("127.0.0.1", server.getPort()), new HttpGet("/"), context2, response -> {
|
client.execute(new HttpHost("127.0.0.1", server.getPort()), new HttpGet("/"), context2, response -> {
|
||||||
EntityUtils.consume(response.getEntity());
|
EntityUtils.consume(response.getEntity());
|
||||||
return null;
|
return null;
|
||||||
|
@ -248,7 +247,7 @@ public class TestStatefulConnManagement {
|
||||||
// So the ConnPoolByRoute will need to kill one connection (it is maxed out globally).
|
// So the ConnPoolByRoute will need to kill one connection (it is maxed out globally).
|
||||||
// The killed conn is the oldest, which means the first HTTPGet ([localhost][stuff]).
|
// The killed conn is the oldest, which means the first HTTPGet ([localhost][stuff]).
|
||||||
// When this happens, the RouteSpecificPool becomes empty.
|
// When this happens, the RouteSpecificPool becomes empty.
|
||||||
final HttpContext context3 = new BasicHttpContext();
|
final HttpContext context3 = new HttpClientContext();
|
||||||
client.execute(target, new HttpGet("/"), context3, response -> {
|
client.execute(target, new HttpGet("/"), context3, response -> {
|
||||||
EntityUtils.consume(response.getEntity());
|
EntityUtils.consume(response.getEntity());
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -38,7 +38,6 @@ import org.apache.hc.client5.http.impl.DefaultSchemePortResolver;
|
||||||
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.config.Lookup;
|
import org.apache.hc.core5.http.config.Lookup;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link HttpClientContext} builder.
|
* {@link HttpClientContext} builder.
|
||||||
|
@ -103,7 +102,7 @@ public class ContextBuilder extends AbstractClientContextBuilder<HttpClientConte
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpClientContext createContext() {
|
protected HttpClientContext createContext() {
|
||||||
return new HttpClientContext(new BasicHttpContext());
|
return new HttpClientContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,6 @@ import org.apache.hc.core5.http.nio.CapacityChannel;
|
||||||
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
||||||
import org.apache.hc.core5.http.nio.RequestChannel;
|
import org.apache.hc.core5.http.nio.RequestChannel;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -442,7 +441,7 @@ public final class AsyncConnectExec implements AsyncExecChainHandler {
|
||||||
public void consumeResponse(final HttpResponse response,
|
public void consumeResponse(final HttpResponse response,
|
||||||
final EntityDetails entityDetails,
|
final EntityDetails entityDetails,
|
||||||
final HttpContext httpContext) throws HttpException, IOException {
|
final HttpContext httpContext) throws HttpException, IOException {
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
clientContext.setResponse(response);
|
||||||
proxyHttpProcessor.process(response, entityDetails, clientContext);
|
proxyHttpProcessor.process(response, entityDetails, clientContext);
|
||||||
|
|
||||||
final int status = response.getCode();
|
final int status = response.getCode();
|
||||||
|
@ -547,7 +546,7 @@ public final class AsyncConnectExec implements AsyncExecChainHandler {
|
||||||
final EndpointInfo endpointInfo = execRuntime.getEndpointInfo();
|
final EndpointInfo endpointInfo = execRuntime.getEndpointInfo();
|
||||||
if (endpointInfo != null) {
|
if (endpointInfo != null) {
|
||||||
clientContext.setProtocolVersion(endpointInfo.getProtocol());
|
clientContext.setProtocolVersion(endpointInfo.getProtocol());
|
||||||
clientContext.setAttribute(HttpCoreContext.SSL_SESSION, endpointInfo.getSslSession());
|
clientContext.setSSLSession(endpointInfo.getSslSession());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
chain.proceed(request, entityProducer, scope, asyncExecCallback);
|
chain.proceed(request, entityProducer, scope, asyncExecCallback);
|
||||||
|
|
|
@ -55,7 +55,6 @@ import org.apache.hc.core5.http.nio.CapacityChannel;
|
||||||
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
||||||
import org.apache.hc.core5.http.nio.RequestChannel;
|
import org.apache.hc.core5.http.nio.RequestChannel;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -128,7 +127,7 @@ public class H2AsyncMainClientExec implements AsyncExecChainHandler {
|
||||||
public void produceRequest(final RequestChannel channel, final HttpContext context) throws HttpException, IOException {
|
public void produceRequest(final RequestChannel channel, final HttpContext context) throws HttpException, IOException {
|
||||||
|
|
||||||
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
clientContext.setRequest(request);
|
||||||
httpProcessor.process(request, entityProducer, clientContext);
|
httpProcessor.process(request, entityProducer, clientContext);
|
||||||
|
|
||||||
channel.sendRequest(request, entityProducer, context);
|
channel.sendRequest(request, entityProducer, context);
|
||||||
|
@ -154,7 +153,7 @@ public class H2AsyncMainClientExec implements AsyncExecChainHandler {
|
||||||
final EntityDetails entityDetails,
|
final EntityDetails entityDetails,
|
||||||
final HttpContext context) throws HttpException, IOException {
|
final HttpContext context) throws HttpException, IOException {
|
||||||
|
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
clientContext.setResponse(response);
|
||||||
httpProcessor.process(response, entityDetails, clientContext);
|
httpProcessor.process(response, entityDetails, clientContext);
|
||||||
|
|
||||||
entityConsumerRef.set(asyncExecCallback.handleResponse(response, entityDetails));
|
entityConsumerRef.set(asyncExecCallback.handleResponse(response, entityDetails));
|
||||||
|
|
|
@ -63,7 +63,6 @@ import org.apache.hc.core5.http.nio.CapacityChannel;
|
||||||
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
import org.apache.hc.core5.http.nio.DataStreamChannel;
|
||||||
import org.apache.hc.core5.http.nio.RequestChannel;
|
import org.apache.hc.core5.http.nio.RequestChannel;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
import org.apache.hc.core5.util.TimeValue;
|
import org.apache.hc.core5.util.TimeValue;
|
||||||
|
@ -150,7 +149,7 @@ class HttpAsyncMainClientExec implements AsyncExecChainHandler {
|
||||||
final HttpContext context) throws HttpException, IOException {
|
final HttpContext context) throws HttpException, IOException {
|
||||||
|
|
||||||
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
clientContext.setRequest(request);
|
||||||
httpProcessor.process(request, entityProducer, clientContext);
|
httpProcessor.process(request, entityProducer, clientContext);
|
||||||
|
|
||||||
channel.sendRequest(request, entityProducer, context);
|
channel.sendRequest(request, entityProducer, context);
|
||||||
|
@ -238,7 +237,7 @@ class HttpAsyncMainClientExec implements AsyncExecChainHandler {
|
||||||
final EntityDetails entityDetails,
|
final EntityDetails entityDetails,
|
||||||
final HttpContext context) throws HttpException, IOException {
|
final HttpContext context) throws HttpException, IOException {
|
||||||
|
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
clientContext.setResponse(response);
|
||||||
httpProcessor.process(response, entityDetails, clientContext);
|
httpProcessor.process(response, entityDetails, clientContext);
|
||||||
|
|
||||||
entityConsumerRef.set(asyncExecCallback.handleResponse(response, entityDetails));
|
entityConsumerRef.set(asyncExecCallback.handleResponse(response, entityDetails));
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
package org.apache.hc.client5.http.impl.auth;
|
package org.apache.hc.client5.http.impl.auth;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.hc.client5.http.auth.AuthChallenge;
|
import org.apache.hc.client5.http.auth.AuthChallenge;
|
||||||
|
@ -55,11 +54,9 @@ public class AuthChallengeParser {
|
||||||
private final static char COMMA_CHAR = ',';
|
private final static char COMMA_CHAR = ',';
|
||||||
private final static char EQUAL_CHAR = '=';
|
private final static char EQUAL_CHAR = '=';
|
||||||
|
|
||||||
// IMPORTANT!
|
private static final Tokenizer.Delimiter TERMINATORS = Tokenizer.delimiters(BLANK, EQUAL_CHAR, COMMA_CHAR);
|
||||||
// These private static variables must be treated as immutable and never exposed outside this class
|
private static final Tokenizer.Delimiter DELIMITER = Tokenizer.delimiters(COMMA_CHAR);
|
||||||
private static final BitSet TERMINATORS = Tokenizer.INIT_BITSET(BLANK, EQUAL_CHAR, COMMA_CHAR);
|
private static final Tokenizer.Delimiter SPACE = Tokenizer.delimiters(BLANK);
|
||||||
private static final BitSet DELIMITER = Tokenizer.INIT_BITSET(COMMA_CHAR);
|
|
||||||
private static final BitSet SPACE = Tokenizer.INIT_BITSET(BLANK);
|
|
||||||
|
|
||||||
static class ChallengeInt {
|
static class ChallengeInt {
|
||||||
|
|
||||||
|
@ -173,7 +170,7 @@ public class AuthChallengeParser {
|
||||||
while (!cursor.atEnd()) {
|
while (!cursor.atEnd()) {
|
||||||
int pos = cursor.getPos();
|
int pos = cursor.getPos();
|
||||||
char current = buf.charAt(pos);
|
char current = buf.charAt(pos);
|
||||||
if (TERMINATORS.get(current)) {
|
if (TERMINATORS.test(current)) {
|
||||||
// Here it gets really ugly
|
// Here it gets really ugly
|
||||||
if (current == EQUAL_CHAR) {
|
if (current == EQUAL_CHAR) {
|
||||||
// it can be a start of a parameter value or token68 padding
|
// it can be a start of a parameter value or token68 padding
|
||||||
|
|
|
@ -63,7 +63,6 @@ import org.apache.hc.core5.http.Method;
|
||||||
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
||||||
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
||||||
import org.apache.hc.core5.http.message.StatusLine;
|
import org.apache.hc.core5.http.message.StatusLine;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -190,7 +189,7 @@ public final class ConnectExec implements ExecChainHandler {
|
||||||
final EndpointInfo endpointInfo = execRuntime.getEndpointInfo();
|
final EndpointInfo endpointInfo = execRuntime.getEndpointInfo();
|
||||||
if (endpointInfo != null) {
|
if (endpointInfo != null) {
|
||||||
context.setProtocolVersion(endpointInfo.getProtocol());
|
context.setProtocolVersion(endpointInfo.getProtocol());
|
||||||
context.setAttribute(HttpCoreContext.SSL_SESSION, endpointInfo.getSslSession());
|
context.setSSLSession(endpointInfo.getSslSession());
|
||||||
}
|
}
|
||||||
return chain.proceed(request, scope);
|
return chain.proceed(request, scope);
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ import org.apache.hc.core5.http.HttpRequest;
|
||||||
import org.apache.hc.core5.http.config.Lookup;
|
import org.apache.hc.core5.http.config.Lookup;
|
||||||
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
||||||
import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
|
import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.io.CloseMode;
|
import org.apache.hc.core5.io.CloseMode;
|
||||||
import org.apache.hc.core5.io.ModalCloseable;
|
import org.apache.hc.core5.io.ModalCloseable;
|
||||||
|
@ -147,7 +146,7 @@ class InternalHttpClient extends CloseableHttpClient implements Configurable {
|
||||||
Args.notNull(request, "HTTP request");
|
Args.notNull(request, "HTTP request");
|
||||||
try {
|
try {
|
||||||
final HttpClientContext localcontext = HttpClientContext.adapt(
|
final HttpClientContext localcontext = HttpClientContext.adapt(
|
||||||
context != null ? context : new BasicHttpContext());
|
context != null ? context : new HttpClientContext());
|
||||||
RequestConfig config = null;
|
RequestConfig config = null;
|
||||||
if (request instanceof Configurable) {
|
if (request instanceof Configurable) {
|
||||||
config = ((Configurable) request).getConfig();
|
config = ((Configurable) request).getConfig();
|
||||||
|
|
|
@ -52,7 +52,6 @@ import org.apache.hc.core5.http.HttpStatus;
|
||||||
import org.apache.hc.core5.http.ProtocolException;
|
import org.apache.hc.core5.http.ProtocolException;
|
||||||
import org.apache.hc.core5.http.ProtocolVersion;
|
import org.apache.hc.core5.http.ProtocolVersion;
|
||||||
import org.apache.hc.core5.http.message.RequestLine;
|
import org.apache.hc.core5.http.message.RequestLine;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.io.CloseMode;
|
import org.apache.hc.core5.io.CloseMode;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
|
@ -115,7 +114,7 @@ public final class MainClientExec implements ExecChainHandler {
|
||||||
try {
|
try {
|
||||||
// Run request protocol interceptors
|
// Run request protocol interceptors
|
||||||
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
||||||
context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
context.setRequest(request);
|
||||||
|
|
||||||
httpProcessor.process(request, request.getEntity(), context);
|
httpProcessor.process(request, request.getEntity(), context);
|
||||||
|
|
||||||
|
@ -141,7 +140,7 @@ public final class MainClientExec implements ExecChainHandler {
|
||||||
},
|
},
|
||||||
context);
|
context);
|
||||||
|
|
||||||
context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
|
context.setResponse(response);
|
||||||
httpProcessor.process(response, response.getEntity(), context);
|
httpProcessor.process(response, response.getEntity(), context);
|
||||||
|
|
||||||
Object userToken = context.getUserToken();
|
Object userToken = context.getUserToken();
|
||||||
|
|
|
@ -54,10 +54,8 @@ import org.apache.hc.core5.http.HttpEntity;
|
||||||
import org.apache.hc.core5.http.HttpException;
|
import org.apache.hc.core5.http.HttpException;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.http.protocol.RequestContent;
|
import org.apache.hc.core5.http.protocol.RequestContent;
|
||||||
import org.apache.hc.core5.http.protocol.RequestTargetHost;
|
import org.apache.hc.core5.http.protocol.RequestTargetHost;
|
||||||
|
@ -121,7 +119,7 @@ public class MinimalHttpClient extends CloseableHttpClient {
|
||||||
request.setAuthority(new URIAuthority(target));
|
request.setAuthority(new URIAuthority(target));
|
||||||
}
|
}
|
||||||
final HttpClientContext clientContext = HttpClientContext.adapt(
|
final HttpClientContext clientContext = HttpClientContext.adapt(
|
||||||
context != null ? context : new BasicHttpContext());
|
context != null ? context : new HttpClientContext());
|
||||||
RequestConfig config = null;
|
RequestConfig config = null;
|
||||||
if (request instanceof Configurable) {
|
if (request instanceof Configurable) {
|
||||||
config = ((Configurable) request).getConfig();
|
config = ((Configurable) request).getConfig();
|
||||||
|
@ -143,7 +141,7 @@ public class MinimalHttpClient extends CloseableHttpClient {
|
||||||
execRuntime.connectEndpoint(clientContext);
|
execRuntime.connectEndpoint(clientContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
clientContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
|
clientContext.setRequest(request);
|
||||||
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
||||||
|
|
||||||
httpProcessor.process(request, request.getEntity(), clientContext);
|
httpProcessor.process(request, request.getEntity(), clientContext);
|
||||||
|
|
|
@ -69,10 +69,7 @@ import org.apache.hc.core5.http.io.HttpConnectionFactory;
|
||||||
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
||||||
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
||||||
import org.apache.hc.core5.http.message.StatusLine;
|
import org.apache.hc.core5.http.message.StatusLine;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
import org.apache.hc.core5.http.protocol.HttpProcessor;
|
||||||
import org.apache.hc.core5.http.protocol.RequestTargetHost;
|
import org.apache.hc.core5.http.protocol.RequestTargetHost;
|
||||||
import org.apache.hc.core5.http.protocol.RequestUserAgent;
|
import org.apache.hc.core5.http.protocol.RequestUserAgent;
|
||||||
|
@ -148,7 +145,7 @@ public class ProxyClient {
|
||||||
proxy, false, TunnelType.TUNNELLED, LayerType.PLAIN);
|
proxy, false, TunnelType.TUNNELLED, LayerType.PLAIN);
|
||||||
|
|
||||||
final ManagedHttpClientConnection conn = this.connFactory.createConnection(null);
|
final ManagedHttpClientConnection conn = this.connFactory.createConnection(null);
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
ClassicHttpResponse response;
|
ClassicHttpResponse response;
|
||||||
|
|
||||||
final ClassicHttpRequest connect = new BasicClassicHttpRequest(Method.CONNECT, proxy, target.toHostString());
|
final ClassicHttpRequest connect = new BasicClassicHttpRequest(Method.CONNECT, proxy, target.toHostString());
|
||||||
|
@ -157,7 +154,7 @@ public class ProxyClient {
|
||||||
credsProvider.setCredentials(new AuthScope(proxy), credentials);
|
credsProvider.setCredentials(new AuthScope(proxy), credentials);
|
||||||
|
|
||||||
// Populate the execution context
|
// Populate the execution context
|
||||||
context.setAttribute(HttpCoreContext.HTTP_REQUEST, connect);
|
context.setRequest(connect);
|
||||||
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
|
||||||
context.setAttribute(HttpClientContext.CREDS_PROVIDER, credsProvider);
|
context.setAttribute(HttpClientContext.CREDS_PROVIDER, credsProvider);
|
||||||
context.setAttribute(HttpClientContext.AUTHSCHEME_REGISTRY, this.authSchemeRegistry);
|
context.setAttribute(HttpClientContext.AUTHSCHEME_REGISTRY, this.authSchemeRegistry);
|
||||||
|
|
|
@ -29,7 +29,6 @@ package org.apache.hc.client5.http.impl.cookie;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -70,9 +69,9 @@ public class RFC6265CookieSpec implements CookieSpec {
|
||||||
|
|
||||||
// IMPORTANT!
|
// IMPORTANT!
|
||||||
// These private static variables must be treated as immutable and never exposed outside this class
|
// These private static variables must be treated as immutable and never exposed outside this class
|
||||||
private static final BitSet TOKEN_DELIMS = Tokenizer.INIT_BITSET(EQUAL_CHAR, PARAM_DELIMITER);
|
private static final Tokenizer.Delimiter TOKEN_DELIMS = Tokenizer.delimiters(EQUAL_CHAR, PARAM_DELIMITER);
|
||||||
private static final BitSet VALUE_DELIMS = Tokenizer.INIT_BITSET(PARAM_DELIMITER);
|
private static final Tokenizer.Delimiter VALUE_DELIMS = Tokenizer.delimiters(PARAM_DELIMITER);
|
||||||
private static final BitSet SPECIAL_CHARS = Tokenizer.INIT_BITSET(' ',
|
private static final Tokenizer.Delimiter SPECIAL_CHARS = Tokenizer.delimiters(' ',
|
||||||
DQUOTE_CHAR, COMMA_CHAR, PARAM_DELIMITER, ESCAPE_CHAR);
|
DQUOTE_CHAR, COMMA_CHAR, PARAM_DELIMITER, ESCAPE_CHAR);
|
||||||
|
|
||||||
private final CookieAttributeHandler[] attribHandlers;
|
private final CookieAttributeHandler[] attribHandlers;
|
||||||
|
@ -257,10 +256,10 @@ public class RFC6265CookieSpec implements CookieSpec {
|
||||||
return containsChars(s, SPECIAL_CHARS);
|
return containsChars(s, SPECIAL_CHARS);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean containsChars(final CharSequence s, final BitSet chars) {
|
boolean containsChars(final CharSequence s, final Tokenizer.Delimiter chars) {
|
||||||
for (int i = 0; i < s.length(); i++) {
|
for (int i = 0; i < s.length(); i++) {
|
||||||
final char ch = s.charAt(i);
|
final char ch = s.charAt(i);
|
||||||
if (chars.get(ch)) {
|
if (chars.test(ch)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ import org.apache.hc.client5.http.cookie.CookieSpecFactory;
|
||||||
import org.apache.hc.client5.http.cookie.CookieStore;
|
import org.apache.hc.client5.http.cookie.CookieStore;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.config.Lookup;
|
import org.apache.hc.core5.http.config.Lookup;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
||||||
import org.apache.hc.core5.util.Args;
|
import org.apache.hc.core5.util.Args;
|
||||||
|
@ -136,6 +135,7 @@ public class HttpClientContext extends HttpCoreContext {
|
||||||
*/
|
*/
|
||||||
public static final String EXCHANGE_ID = "http.exchange-id";
|
public static final String EXCHANGE_ID = "http.exchange-id";
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public static HttpClientContext adapt(final HttpContext context) {
|
public static HttpClientContext adapt(final HttpContext context) {
|
||||||
Args.notNull(context, "HTTP context");
|
Args.notNull(context, "HTTP context");
|
||||||
if (context instanceof HttpClientContext) {
|
if (context instanceof HttpClientContext) {
|
||||||
|
@ -145,7 +145,7 @@ public class HttpClientContext extends HttpCoreContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HttpClientContext create() {
|
public static HttpClientContext create() {
|
||||||
return new HttpClientContext(new BasicHttpContext());
|
return new HttpClientContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpClientContext(final HttpContext context) {
|
public HttpClientContext(final HttpContext context) {
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
package org.apache.hc.client5.http.ssl;
|
package org.apache.hc.client5.http.ssl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.hc.core5.http.NameValuePair;
|
import org.apache.hc.core5.http.NameValuePair;
|
||||||
|
@ -40,8 +39,8 @@ final class DistinguishedNameParser {
|
||||||
|
|
||||||
public final static DistinguishedNameParser INSTANCE = new DistinguishedNameParser();
|
public final static DistinguishedNameParser INSTANCE = new DistinguishedNameParser();
|
||||||
|
|
||||||
private static final BitSet EQUAL_OR_COMMA_OR_PLUS = Tokenizer.INIT_BITSET('=', ',', '+');
|
private static final Tokenizer.Delimiter EQUAL_OR_COMMA_OR_PLUS = Tokenizer.delimiters('=', ',', '+');
|
||||||
private static final BitSet COMMA_OR_PLUS = Tokenizer.INIT_BITSET(',', '+');
|
private static final Tokenizer.Delimiter COMMA_OR_PLUS = Tokenizer.delimiters(',', '+');
|
||||||
|
|
||||||
private final Tokenizer tokenParser;
|
private final Tokenizer tokenParser;
|
||||||
|
|
||||||
|
@ -49,11 +48,11 @@ final class DistinguishedNameParser {
|
||||||
this.tokenParser = new InternalTokenParser();
|
this.tokenParser = new InternalTokenParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String parseToken(final CharArrayBuffer buf, final Tokenizer.Cursor cursor, final BitSet delimiters) {
|
private String parseToken(final CharArrayBuffer buf, final Tokenizer.Cursor cursor, final Tokenizer.Delimiter delimiters) {
|
||||||
return tokenParser.parseToken(buf, cursor, delimiters);
|
return tokenParser.parseToken(buf, cursor, delimiters);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String parseValue(final CharArrayBuffer buf, final Tokenizer.Cursor cursor, final BitSet delimiters) {
|
private String parseValue(final CharArrayBuffer buf, final Tokenizer.Cursor cursor, final Tokenizer.Delimiter delimiters) {
|
||||||
return tokenParser.parseValue(buf, cursor, delimiters);
|
return tokenParser.parseValue(buf, cursor, delimiters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +99,7 @@ final class DistinguishedNameParser {
|
||||||
public void copyUnquotedContent(
|
public void copyUnquotedContent(
|
||||||
final CharSequence buf,
|
final CharSequence buf,
|
||||||
final Tokenizer.Cursor cursor,
|
final Tokenizer.Cursor cursor,
|
||||||
final BitSet delimiters,
|
final Tokenizer.Delimiter delimiters,
|
||||||
final StringBuilder dst) {
|
final StringBuilder dst) {
|
||||||
int pos = cursor.getPos();
|
int pos = cursor.getPos();
|
||||||
final int indexFrom = cursor.getPos();
|
final int indexFrom = cursor.getPos();
|
||||||
|
@ -112,7 +111,7 @@ final class DistinguishedNameParser {
|
||||||
dst.append(current);
|
dst.append(current);
|
||||||
escaped = false;
|
escaped = false;
|
||||||
} else {
|
} else {
|
||||||
if ((delimiters != null && delimiters.get(current))
|
if ((delimiters != null && delimiters.test(current))
|
||||||
|| Tokenizer.isWhitespace(current) || current == '\"') {
|
|| Tokenizer.isWhitespace(current) || current == '\"') {
|
||||||
break;
|
break;
|
||||||
} else if (current == '\\') {
|
} else if (current == '\\') {
|
||||||
|
|
|
@ -30,9 +30,9 @@ import org.apache.hc.client5.http.classic.methods.HttpGet;
|
||||||
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
||||||
import org.apache.hc.client5.http.impl.classic.HttpClients;
|
import org.apache.hc.client5.http.impl.classic.HttpClients;
|
||||||
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
||||||
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.HttpEntity;
|
import org.apache.hc.core5.http.HttpEntity;
|
||||||
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
import org.apache.hc.core5.http.io.entity.EntityUtils;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,7 +90,7 @@ public class ClientMultiThreadedExecution {
|
||||||
|
|
||||||
public GetThread(final CloseableHttpClient httpClient, final HttpGet httpget, final int id) {
|
public GetThread(final CloseableHttpClient httpClient, final HttpGet httpget, final int id) {
|
||||||
this.httpClient = httpClient;
|
this.httpClient = httpClient;
|
||||||
this.context = new BasicHttpContext();
|
this.context = new HttpClientContext();
|
||||||
this.httpget = httpget;
|
this.httpget = httpget;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,6 @@ import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.HttpResponse;
|
import org.apache.hc.core5.http.HttpResponse;
|
||||||
import org.apache.hc.core5.http.HttpStatus;
|
import org.apache.hc.core5.http.HttpStatus;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpResponse;
|
import org.apache.hc.core5.http.message.BasicHttpResponse;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.apache.hc.core5.util.TimeValue;
|
import org.apache.hc.core5.util.TimeValue;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -45,7 +43,7 @@ public class TestDefaultConnKeepAliveStrategy {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIllegalResponseArg() throws Exception {
|
public void testIllegalResponseArg() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext(null);
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy();
|
final ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy();
|
||||||
Assertions.assertThrows(NullPointerException.class, () ->
|
Assertions.assertThrows(NullPointerException.class, () ->
|
||||||
keepAliveStrat.getKeepAliveDuration(null, context));
|
keepAliveStrat.getKeepAliveDuration(null, context));
|
||||||
|
|
|
@ -52,7 +52,6 @@ import org.apache.hc.core5.http.config.RegistryBuilder;
|
||||||
import org.apache.hc.core5.http.message.BasicHeader;
|
import org.apache.hc.core5.http.message.BasicHeader;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpResponse;
|
import org.apache.hc.core5.http.message.BasicHttpResponse;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -87,7 +86,7 @@ public class TestHttpAuthenticator {
|
||||||
this.authScheme = Mockito.mock(CacheableAuthState.class, Mockito.withSettings()
|
this.authScheme = Mockito.mock(CacheableAuthState.class, Mockito.withSettings()
|
||||||
.defaultAnswer(Answers.CALLS_REAL_METHODS));
|
.defaultAnswer(Answers.CALLS_REAL_METHODS));
|
||||||
Mockito.when(this.authScheme.isChallengeComplete()).thenReturn(Boolean.TRUE);
|
Mockito.when(this.authScheme.isChallengeComplete()).thenReturn(Boolean.TRUE);
|
||||||
this.context = new BasicHttpContext();
|
this.context = new HttpClientContext();
|
||||||
this.defaultHost = new HttpHost("localhost", 80);
|
this.defaultHost = new HttpHost("localhost", 80);
|
||||||
this.credentialsProvider = Mockito.mock(CredentialsProvider.class);
|
this.credentialsProvider = Mockito.mock(CredentialsProvider.class);
|
||||||
this.context.setAttribute(HttpClientContext.CREDS_PROVIDER, this.credentialsProvider);
|
this.context.setAttribute(HttpClientContext.CREDS_PROVIDER, this.credentialsProvider);
|
||||||
|
|
|
@ -37,7 +37,7 @@ import org.apache.hc.client5.http.auth.AuthScope;
|
||||||
import org.apache.hc.client5.http.auth.Credentials;
|
import org.apache.hc.client5.http.auth.Credentials;
|
||||||
import org.apache.hc.client5.http.auth.StandardAuthScheme;
|
import org.apache.hc.client5.http.auth.StandardAuthScheme;
|
||||||
import org.apache.hc.client5.http.classic.methods.HttpGet;
|
import org.apache.hc.client5.http.classic.methods.HttpGet;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.ArgumentMatchers;
|
import org.mockito.ArgumentMatchers;
|
||||||
|
@ -59,7 +59,7 @@ public class TestSystemDefaultCredentialsProvider {
|
||||||
new PasswordAuthentication("testUser", "testPassword".toCharArray());
|
new PasswordAuthentication("testUser", "testPassword".toCharArray());
|
||||||
|
|
||||||
// It's not possible to mock static Authenticator methods. So we mock a delegate
|
// It's not possible to mock static Authenticator methods. So we mock a delegate
|
||||||
private final class DelegatedAuthenticator extends Authenticator {
|
private final static class DelegatedAuthenticator extends Authenticator {
|
||||||
private final AuthenticatorDelegate authenticatorDelegate;
|
private final AuthenticatorDelegate authenticatorDelegate;
|
||||||
|
|
||||||
private DelegatedAuthenticator(final AuthenticatorDelegate authenticatorDelegate) {
|
private DelegatedAuthenticator(final AuthenticatorDelegate authenticatorDelegate) {
|
||||||
|
@ -94,11 +94,11 @@ public class TestSystemDefaultCredentialsProvider {
|
||||||
|
|
||||||
final URL httpRequestUrl = new URL(TARGET_SCHEME1, TARGET_HOST1, TARGET_PORT1, "/");
|
final URL httpRequestUrl = new URL(TARGET_SCHEME1, TARGET_HOST1, TARGET_PORT1, "/");
|
||||||
final AuthScope authScope = new AuthScope(PROXY_PROTOCOL1, PROXY_HOST1, PROXY_PORT1, PROMPT1, StandardAuthScheme.BASIC);
|
final AuthScope authScope = new AuthScope(PROXY_PROTOCOL1, PROXY_HOST1, PROXY_PORT1, PROMPT1, StandardAuthScheme.BASIC);
|
||||||
final HttpCoreContext coreContext = new HttpCoreContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
coreContext.setAttribute(HttpCoreContext.HTTP_REQUEST, new HttpGet(httpRequestUrl.toURI()));
|
context.setRequest(new HttpGet(httpRequestUrl.toURI()));
|
||||||
|
|
||||||
final Credentials receivedCredentials =
|
final Credentials receivedCredentials =
|
||||||
new SystemDefaultCredentialsProvider().getCredentials(authScope, coreContext);
|
new SystemDefaultCredentialsProvider().getCredentials(authScope, context);
|
||||||
|
|
||||||
Mockito.verify(authenticatorDelegate).getPasswordAuthentication(
|
Mockito.verify(authenticatorDelegate).getPasswordAuthentication(
|
||||||
PROXY_HOST1, null, PROXY_PORT1, PROXY_PROTOCOL1,
|
PROXY_HOST1, null, PROXY_PORT1, PROXY_PROTOCOL1,
|
||||||
|
|
|
@ -44,12 +44,11 @@ import org.apache.hc.client5.http.UnsupportedSchemeException;
|
||||||
import org.apache.hc.client5.http.config.TlsConfig;
|
import org.apache.hc.client5.http.config.TlsConfig;
|
||||||
import org.apache.hc.client5.http.io.DetachedSocketFactory;
|
import org.apache.hc.client5.http.io.DetachedSocketFactory;
|
||||||
import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
|
import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
|
||||||
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.client5.http.ssl.TlsSocketStrategy;
|
import org.apache.hc.client5.http.ssl.TlsSocketStrategy;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.config.Lookup;
|
import org.apache.hc.core5.http.config.Lookup;
|
||||||
import org.apache.hc.core5.http.io.SocketConfig;
|
import org.apache.hc.core5.http.io.SocketConfig;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.apache.hc.core5.http2.HttpVersionPolicy;
|
import org.apache.hc.core5.http2.HttpVersionPolicy;
|
||||||
import org.apache.hc.core5.util.TimeValue;
|
import org.apache.hc.core5.util.TimeValue;
|
||||||
import org.apache.hc.core5.util.Timeout;
|
import org.apache.hc.core5.util.Timeout;
|
||||||
|
@ -84,7 +83,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnect() throws Exception {
|
public void testConnect() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("somehost");
|
final HttpHost host = new HttpHost("somehost");
|
||||||
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
||||||
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
|
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
|
||||||
|
@ -117,7 +116,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectWithTLSUpgrade() throws Exception {
|
public void testConnectWithTLSUpgrade() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("https", "somehost");
|
final HttpHost host = new HttpHost("https", "somehost");
|
||||||
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
||||||
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
|
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {127, 0, 0, 1});
|
||||||
|
@ -153,7 +152,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectTimeout() throws Exception {
|
public void testConnectTimeout() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("somehost");
|
final HttpHost host = new HttpHost("somehost");
|
||||||
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
||||||
final InetAddress ip2 = InetAddress.getByAddress(new byte[] {10, 0, 0, 2});
|
final InetAddress ip2 = InetAddress.getByAddress(new byte[] {10, 0, 0, 2});
|
||||||
|
@ -170,7 +169,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectFailure() throws Exception {
|
public void testConnectFailure() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("somehost");
|
final HttpHost host = new HttpHost("somehost");
|
||||||
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
||||||
final InetAddress ip2 = InetAddress.getByAddress(new byte[] {10, 0, 0, 2});
|
final InetAddress ip2 = InetAddress.getByAddress(new byte[] {10, 0, 0, 2});
|
||||||
|
@ -187,7 +186,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectFailover() throws Exception {
|
public void testConnectFailover() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("somehost");
|
final HttpHost host = new HttpHost("somehost");
|
||||||
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
||||||
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
final InetAddress ip1 = InetAddress.getByAddress(new byte[] {10, 0, 0, 1});
|
||||||
|
@ -214,7 +213,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectExplicitAddress() throws Exception {
|
public void testConnectExplicitAddress() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
final InetAddress local = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
|
||||||
final InetAddress ip = InetAddress.getByAddress(new byte[] {127, 0, 0, 23});
|
final InetAddress ip = InetAddress.getByAddress(new byte[] {127, 0, 0, 23});
|
||||||
final HttpHost host = new HttpHost(ip);
|
final HttpHost host = new HttpHost(ip);
|
||||||
|
@ -236,7 +235,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpgrade() throws Exception {
|
public void testUpgrade() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("https", "somehost", -1);
|
final HttpHost host = new HttpHost("https", "somehost", -1);
|
||||||
|
|
||||||
Mockito.when(conn.isOpen()).thenReturn(true);
|
Mockito.when(conn.isOpen()).thenReturn(true);
|
||||||
|
@ -258,7 +257,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpgradeUpsupportedScheme() throws Exception {
|
public void testUpgradeUpsupportedScheme() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("httpsssss", "somehost", -1);
|
final HttpHost host = new HttpHost("httpsssss", "somehost", -1);
|
||||||
|
|
||||||
Mockito.when(conn.isOpen()).thenReturn(true);
|
Mockito.when(conn.isOpen()).thenReturn(true);
|
||||||
|
@ -270,7 +269,7 @@ public class TestHttpClientConnectionOperator {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpgradeNonLayeringScheme() throws Exception {
|
public void testUpgradeNonLayeringScheme() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpHost host = new HttpHost("http", "somehost", -1);
|
final HttpHost host = new HttpHost("http", "somehost", -1);
|
||||||
|
|
||||||
Mockito.when(conn.isOpen()).thenReturn(true);
|
Mockito.when(conn.isOpen()).thenReturn(true);
|
||||||
|
|
|
@ -32,7 +32,6 @@ import org.apache.hc.client5.http.SchemePortResolver;
|
||||||
import org.apache.hc.client5.http.config.RequestConfig;
|
import org.apache.hc.client5.http.config.RequestConfig;
|
||||||
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -60,7 +59,7 @@ public class TestDefaultProxyRoutePlanner {
|
||||||
public void testDefaultProxyDirect() throws Exception {
|
public void testDefaultProxyDirect() throws Exception {
|
||||||
final HttpHost target = new HttpHost("http", "somehost", 80);
|
final HttpHost target = new HttpHost("http", "somehost", 80);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
|
|
@ -35,7 +35,6 @@ import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.HttpRequest;
|
import org.apache.hc.core5.http.HttpRequest;
|
||||||
import org.apache.hc.core5.http.ProtocolException;
|
import org.apache.hc.core5.http.ProtocolException;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.apache.hc.core5.net.URIAuthority;
|
import org.apache.hc.core5.net.URIAuthority;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
@ -61,7 +60,7 @@ public class TestDefaultRoutePlanner {
|
||||||
public void testDirect() throws Exception {
|
public void testDirect() throws Exception {
|
||||||
final HttpHost target = new HttpHost("http", "somehost", 80);
|
final HttpHost target = new HttpHost("http", "somehost", 80);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
@ -75,7 +74,7 @@ public class TestDefaultRoutePlanner {
|
||||||
final HttpHost target = new HttpHost("https", "somehost", -1);
|
final HttpHost target = new HttpHost("https", "somehost", -1);
|
||||||
Mockito.when(schemePortResolver.resolve(target)).thenReturn(443);
|
Mockito.when(schemePortResolver.resolve(target)).thenReturn(443);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(new HttpHost("https", "somehost", 443), route.getTargetHost());
|
Assertions.assertEquals(new HttpHost("https", "somehost", 443), route.getTargetHost());
|
||||||
|
@ -102,7 +101,7 @@ public class TestDefaultRoutePlanner {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNullTarget() throws Exception {
|
public void testNullTarget() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
Assertions.assertThrows(ProtocolException.class, () ->
|
Assertions.assertThrows(ProtocolException.class, () ->
|
||||||
routePlanner.determineRoute(null, context));
|
routePlanner.determineRoute(null, context));
|
||||||
}
|
}
|
||||||
|
@ -113,7 +112,7 @@ public class TestDefaultRoutePlanner {
|
||||||
final URIAuthority virtualHost = new URIAuthority("someotherhost", 443);
|
final URIAuthority virtualHost = new URIAuthority("someotherhost", 443);
|
||||||
final HttpRequest request = new BasicHttpRequest("https", "GET", virtualHost, "/");
|
final HttpRequest request = new BasicHttpRequest("https", "GET", virtualHost, "/");
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, request, context);
|
final HttpRoute route = routePlanner.determineRoute(target, request, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
@ -129,7 +128,7 @@ public class TestDefaultRoutePlanner {
|
||||||
final URIAuthority virtualHost = new URIAuthority("someotherhost", 80);
|
final URIAuthority virtualHost = new URIAuthority("someotherhost", 80);
|
||||||
final HttpRequest request = new BasicHttpRequest("http", "GET", virtualHost, "/");
|
final HttpRequest request = new BasicHttpRequest("http", "GET", virtualHost, "/");
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, request, context);
|
final HttpRoute route = routePlanner.determineRoute(target, request, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
|
|
@ -37,9 +37,8 @@ import java.util.List;
|
||||||
|
|
||||||
import org.apache.hc.client5.http.HttpRoute;
|
import org.apache.hc.client5.http.HttpRoute;
|
||||||
import org.apache.hc.client5.http.SchemePortResolver;
|
import org.apache.hc.client5.http.SchemePortResolver;
|
||||||
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.core5.http.HttpHost;
|
import org.apache.hc.core5.http.HttpHost;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -67,7 +66,7 @@ public class TestSystemDefaultRoutePlanner {
|
||||||
public void testDirect() throws Exception {
|
public void testDirect() throws Exception {
|
||||||
final HttpHost target = new HttpHost("http", "somehost", 80);
|
final HttpHost target = new HttpHost("http", "somehost", 80);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
@ -81,7 +80,7 @@ public class TestSystemDefaultRoutePlanner {
|
||||||
final HttpHost target = new HttpHost("https", "somehost", -1);
|
final HttpHost target = new HttpHost("https", "somehost", -1);
|
||||||
Mockito.when(schemePortResolver.resolve(target)).thenReturn(443);
|
Mockito.when(schemePortResolver.resolve(target)).thenReturn(443);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(new HttpHost("https", "somehost", 443), route.getTargetHost());
|
Assertions.assertEquals(new HttpHost("https", "somehost", 443), route.getTargetHost());
|
||||||
|
@ -106,7 +105,7 @@ public class TestSystemDefaultRoutePlanner {
|
||||||
|
|
||||||
final HttpHost target = new HttpHost("http", "somehost", 80);
|
final HttpHost target = new HttpHost("http", "somehost", 80);
|
||||||
|
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final HttpRoute route = routePlanner.determineRoute(target, context);
|
final HttpRoute route = routePlanner.determineRoute(target, context);
|
||||||
|
|
||||||
Assertions.assertEquals(target, route.getTargetHost());
|
Assertions.assertEquals(target, route.getTargetHost());
|
||||||
|
|
|
@ -49,7 +49,6 @@ import org.apache.hc.core5.http.HttpRequestInterceptor;
|
||||||
import org.apache.hc.core5.http.config.Lookup;
|
import org.apache.hc.core5.http.config.Lookup;
|
||||||
import org.apache.hc.core5.http.config.RegistryBuilder;
|
import org.apache.hc.core5.http.config.RegistryBuilder;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -189,7 +188,7 @@ public class TestRequestAddCookies {
|
||||||
final HttpRequest request = new BasicHttpRequest("GET", "/");
|
final HttpRequest request = new BasicHttpRequest("GET", "/");
|
||||||
|
|
||||||
final HttpClientContext context = HttpClientContext.create();
|
final HttpClientContext context = HttpClientContext.create();
|
||||||
context.setAttribute(HttpCoreContext.CONNECTION_ENDPOINT, null);
|
context.setEndpointDetails(null);
|
||||||
context.setAttribute(HttpClientContext.COOKIE_STORE, this.cookieStore);
|
context.setAttribute(HttpClientContext.COOKIE_STORE, this.cookieStore);
|
||||||
context.setAttribute(HttpClientContext.COOKIESPEC_REGISTRY, this.cookieSpecRegistry);
|
context.setAttribute(HttpClientContext.COOKIESPEC_REGISTRY, this.cookieSpecRegistry);
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ import org.apache.hc.core5.http.HttpRequest;
|
||||||
import org.apache.hc.core5.http.HttpRequestInterceptor;
|
import org.apache.hc.core5.http.HttpRequestInterceptor;
|
||||||
import org.apache.hc.core5.http.message.BasicHeader;
|
import org.apache.hc.core5.http.message.BasicHeader;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -43,7 +42,7 @@ public class TestRequestDefaultHeaders {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequestParameterCheck() throws Exception {
|
public void testRequestParameterCheck() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
final HttpRequestInterceptor interceptor = RequestDefaultHeaders.INSTANCE;
|
final HttpRequestInterceptor interceptor = RequestDefaultHeaders.INSTANCE;
|
||||||
Assertions.assertThrows(NullPointerException.class, () ->
|
Assertions.assertThrows(NullPointerException.class, () ->
|
||||||
interceptor.process(null, null, context));
|
interceptor.process(null, null, context));
|
||||||
|
@ -54,7 +53,7 @@ public class TestRequestDefaultHeaders {
|
||||||
final HttpRequest request = new BasicHttpRequest("CONNECT", "www.somedomain.com");
|
final HttpRequest request = new BasicHttpRequest("CONNECT", "www.somedomain.com");
|
||||||
final List<Header> defheaders = new ArrayList<>();
|
final List<Header> defheaders = new ArrayList<>();
|
||||||
defheaders.add(new BasicHeader("custom", "stuff"));
|
defheaders.add(new BasicHeader("custom", "stuff"));
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
|
|
||||||
final HttpRequestInterceptor interceptor = new RequestDefaultHeaders(defheaders);
|
final HttpRequestInterceptor interceptor = new RequestDefaultHeaders(defheaders);
|
||||||
interceptor.process(request, null, context);
|
interceptor.process(request, null, context);
|
||||||
|
@ -68,7 +67,7 @@ public class TestRequestDefaultHeaders {
|
||||||
request.addHeader("custom", "stuff");
|
request.addHeader("custom", "stuff");
|
||||||
final List<Header> defheaders = new ArrayList<>();
|
final List<Header> defheaders = new ArrayList<>();
|
||||||
defheaders.add(new BasicHeader("custom", "other stuff"));
|
defheaders.add(new BasicHeader("custom", "other stuff"));
|
||||||
final HttpContext context = new BasicHttpContext();
|
final HttpContext context = new HttpClientContext();
|
||||||
|
|
||||||
final HttpRequestInterceptor interceptor = new RequestDefaultHeaders(defheaders);
|
final HttpRequestInterceptor interceptor = new RequestDefaultHeaders(defheaders);
|
||||||
interceptor.process(request, null, context);
|
interceptor.process(request, null, context);
|
||||||
|
|
|
@ -37,8 +37,6 @@ import org.apache.hc.core5.http.HttpHeaders;
|
||||||
import org.apache.hc.core5.http.HttpVersion;
|
import org.apache.hc.core5.http.HttpVersion;
|
||||||
import org.apache.hc.core5.http.io.entity.StringEntity;
|
import org.apache.hc.core5.http.io.entity.StringEntity;
|
||||||
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
@ -62,7 +60,7 @@ public class TestRequestExpectContinue {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequestExpectContinueNotGenerated() throws Exception {
|
public void testRequestExpectContinueNotGenerated() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext(null);
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(false).build();
|
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(false).build();
|
||||||
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
||||||
|
@ -77,7 +75,7 @@ public class TestRequestExpectContinue {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequestExpectContinueHTTP10() throws Exception {
|
public void testRequestExpectContinueHTTP10() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext(null);
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(true).build();
|
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(true).build();
|
||||||
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
||||||
|
@ -93,7 +91,7 @@ public class TestRequestExpectContinue {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequestExpectContinueZeroContent() throws Exception {
|
public void testRequestExpectContinueZeroContent() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext(null);
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(true).build();
|
final RequestConfig config = RequestConfig.custom().setExpectContinueEnabled(true).build();
|
||||||
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
||||||
|
@ -114,7 +112,7 @@ public class TestRequestExpectContinue {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequestExpectContinueIgnoreNonenclosingRequests() throws Exception {
|
public void testRequestExpectContinueIgnoreNonenclosingRequests() throws Exception {
|
||||||
final HttpContext context = new BasicHttpContext(null);
|
final HttpClientContext context = new HttpClientContext();
|
||||||
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
final ClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/");
|
||||||
final RequestExpectContinue interceptor = new RequestExpectContinue();
|
final RequestExpectContinue interceptor = new RequestExpectContinue();
|
||||||
interceptor.process(request, null, context);
|
interceptor.process(request, null, context);
|
||||||
|
|
|
@ -36,7 +36,6 @@ import org.apache.hc.core5.http.HttpRequest;
|
||||||
import org.apache.hc.core5.http.HttpVersion;
|
import org.apache.hc.core5.http.HttpVersion;
|
||||||
import org.apache.hc.core5.http.message.BasicHeader;
|
import org.apache.hc.core5.http.message.BasicHeader;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.HttpCoreContext;
|
|
||||||
import org.hamcrest.MatcherAssert;
|
import org.hamcrest.MatcherAssert;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -104,7 +103,7 @@ class TestRequestUpgrade {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testDoUpgradeIfAlreadyTLS() throws Exception {
|
void testDoUpgradeIfAlreadyTLS() throws Exception {
|
||||||
context.setAttribute(HttpCoreContext.SSL_SESSION, Mockito.mock(SSLSession.class));
|
context.setSSLSession(Mockito.mock(SSLSession.class));
|
||||||
final HttpRequest get = new BasicHttpRequest("GET", "/");
|
final HttpRequest get = new BasicHttpRequest("GET", "/");
|
||||||
interceptor.process(get, null, context);
|
interceptor.process(get, null, context);
|
||||||
Assertions.assertFalse(get.containsHeader(HttpHeaders.UPGRADE));
|
Assertions.assertFalse(get.containsHeader(HttpHeaders.UPGRADE));
|
||||||
|
|
|
@ -40,7 +40,6 @@ import org.apache.hc.core5.http.HttpRequest;
|
||||||
import org.apache.hc.core5.http.ProtocolException;
|
import org.apache.hc.core5.http.ProtocolException;
|
||||||
import org.apache.hc.core5.http.impl.BasicEntityDetails;
|
import org.apache.hc.core5.http.impl.BasicEntityDetails;
|
||||||
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
import org.apache.hc.core5.http.message.BasicHttpRequest;
|
||||||
import org.apache.hc.core5.http.protocol.BasicHttpContext;
|
|
||||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -54,7 +53,7 @@ class TestRequestValidateTrace {
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() {
|
void setUp() {
|
||||||
interceptor = new RequestValidateTrace();
|
interceptor = new RequestValidateTrace();
|
||||||
context = new BasicHttpContext();
|
context = new HttpClientContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -62,7 +62,7 @@
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
<httpcore.version>5.3-alpha1</httpcore.version>
|
<httpcore.version>5.3-alpha2</httpcore.version>
|
||||||
<log4j.version>2.22.0</log4j.version>
|
<log4j.version>2.22.0</log4j.version>
|
||||||
<brotli.version>0.1.2</brotli.version>
|
<brotli.version>0.1.2</brotli.version>
|
||||||
<conscrypt.version>2.5.2</conscrypt.version>
|
<conscrypt.version>2.5.2</conscrypt.version>
|
||||||
|
|
Loading…
Reference in New Issue