Commit Graph

3145 Commits

Author SHA1 Message Date
Carter Kozak 45c45d53e0
HTTPCLIENT-2112: AbstractMultipartFormat respects ByteBuffer.arrayOffset (#253) 2020-08-28 08:05:32 -04:00
Carter Kozak fa08f54077
HTTPCLIENT-2109: Fix RequestConfig.Builder#setConnectionKeepAlive javadoc (#252) 2020-08-23 11:50:21 -04:00
Michael Osipov 3360a69cd2 HTTPCLIENT-2078: Log debug message when no credentials for given auth scope are found
This closes #251
2020-08-18 21:31:25 +02:00
dirkhenselin 2520590437 Avoid updating Content-Length header in a 304 response.
I observed the following problem: `Transfer-Encoding` and
`Content-Length` headers should be mutually exclusive and because I use
chunked transfer, the `Transfer-Encoding` header is set in the response
while the `Content-Length` header is not. In case of a 304 during a
revalidation, the header contains Content-Length=0. Probably a proxy is
responsible for this, just like the comment "Some well-known proxies
respond with Content-Length=0, when returning 304" in the method
CachedHttpResponseGenerator::addMissingContentLengthHeader is saying. In
CacheEntryUpdater::mergeHeaders the Content-Length=0 is merged into the
cached entry, but the cached entry contains also a `Transfer-Encoding`
header, so in the cached entry these headers aren't mutually exclusive
anymore. Because of the `Transfer-Encoding` header the method
CachedHttpResponseGenerator::addMissingContentLengthHeader isn't fixing
the `Content-Length` header and Content-Length=0 causes returning null
instead of the cached content. IMHO the `Content-Length` header should
not be merged into the cached response in case of a 304, at least if the
cached entry contains a `Transfer-Encoding` header.
2020-08-18 14:54:36 +02:00
Carter Kozak 4f47c4abc0 HTTPCLIENT-2107: Threadsafe PoolingHttpClientConnectionManager field volatile access 2020-08-11 12:12:19 +02:00
Oleg Kalnichevski f6da2bac6f HTTPCLIENT-2105: async clients incorrectly handle redirects of requests with enclosed entity 2020-08-09 22:48:30 +02:00
Oleg Kalnichevski 889159b977 Upgraded maven-download-plugin to version 1.6.0 2020-07-18 16:04:02 +02:00
Oleg Kalnichevski ff6308a69f HTTPCLIENT-2100: incorrect handling of EXTENDED mode by MultipartEntityBuilder 2020-07-16 15:43:30 +02:00
Carter Kozak 5bdcb242f0
HTTPCLIENT-2099, HTTPCLIENT-2091: SSLConnectionSocketFactory connect timeout fix (#241)
SSLConnectionSocketFactory no longer overrides the socket timeout
with the connect timeout when an unlimited socket timeout is
configured. This matches behavior of HTTPCLIENT-2091.

Note that in scenarios where SocketConfig sets an infinite timeout
and the RequestConfig sets a bounded timeout, this change results
in the connect-timeout no longer applying to the TLS handshake.
This behavior can be retained by setting the expected timeout in
the SocketConfig.
2020-07-11 17:18:42 +02:00
Gary Gregory a0a2ae0559 Document: Bug fix: BasicExpiresHandler is annotated as immutable but is
not. #240.
2020-07-10 09:01:05 -04:00
Gary Gregory 66f8ca1f09
BasicExpiresHandler is annotated as immutable but is not. (#240) 2020-07-10 08:57:24 -04:00
Carter Kozak 9866865357 HTTPCLIENT-2096: Migrate instance loggers to static fields
Note that this may change the origin of logging when classes
have been subclassed, as the logger origin will use the class
name that defined the logger where previously the subclass type
would be used. In scenarios where external libraries subclass
httpclient utilities this allows httpclient logging to maintain
the `org.apache.hc` prefix instead of inheriting arbitrary
subclass names.

Using some logging frameworks this may result in reduced churn
when httpclient components are created (new connections, for example)
because loggers are looked up once per class.
2020-07-09 11:34:48 +02:00
Niels Basjes 9a967de60e Add Automatic-Module-Name in manifest so Java9 modular applications can depend on this library 2020-07-07 15:48:49 +02:00
Carter Kozak 93e3d0f452 HTTPCLIENT-2097: Fix PoolingAsyncClientConnectionManager boxed primitive reference equality 2020-07-06 18:33:22 +02:00
slisaasquatch ec82acc858
MultipartEntityBuilder#generateBoundary optimization (#233) 2020-07-04 09:49:07 +02:00
Carter Kozak 84bd290954
HTTPCLIENT-2095: Use slf4j interpolation instead of string concatenation where possible (#232) 2020-07-02 17:51:43 +02:00
Carter Kozak 517e5c8d94 HTTPCLIENT-2094: ConnectionManager validateAfterInactivity zero duration agreement
Both connection managers agree on the meaning of a zero-duration
validateAfterInactivity value. Previously the documentation for
both suggested that zero resulted in no validation, however
the classic client would validate prior to each request and
the async client would never validate.
This commit standardizes behavior on the classic client, which
is consistent with hc4.x, allowing zero to force validation prior
to every request.
2020-07-02 11:29:22 +02:00
Oleg Kalnichevski da28440a58 RFC 7235 compliance, HTTPCLIENT-2086: fixed parsing of token68 based (base64-encoded) auth schemes. 2020-07-01 12:28:03 +02:00
Oleg Kalnichevski 445b61a01a HTTPCLIENT-2091: Connect timeout is used instead of socket timeout after a tls upgrade 2020-06-30 12:24:25 +02:00
Oleg Kalnichevski f268d192d4 HTTPCLIENT-2084: client builders incorrectly add message interceptors with LAST position to the head of the list 2020-06-17 12:44:04 +02:00
Carter Kozak a22d889807 HTTPCLIENT-2083: Fix NPE when classic client interceptors are added
Previously HttpClientBuilder methods addExecInterceptorFirst and
addExecInterceptorLast resulted in NullPointerExceptions because
the execInterceptors list had not been initialized yet.
2020-06-12 10:24:45 +02:00
Oleg Kalnichevski c6a4a9b376 Upgraded HttpClient version to 5.0.2-SNAPSHOT 2020-06-12 09:48:10 +02:00
Oleg Kalnichevski c7a766ef4a Updated release notes for HttpClient 5.0.1 release 2020-06-08 19:13:49 +02:00
Oleg Kalnichevski 62e0ecd569 Upgraded HttpCore to version 5.0.1 2020-06-08 19:13:29 +02:00
smashtakov 546351160b fix typo log debug messages 2020-06-03 11:59:51 +02:00
Oleg Kalnichevski 9cfdd54c94 Bug fix: classic connection managers fail to take #isConsistent() flag into account when re-using persistent connections 2020-05-27 16:37:37 +02:00
vonahok 76a12fc4c6
HTTPCLIENT-2077: Authentication failure due to incorrect NTLM auth value check (#223) 2020-04-26 17:08:15 +02:00
Oleg Kalnichevski e26d537658 HTTPCLIENT-2051: corrected handling of 303 redirects 2020-04-24 12:16:57 +02:00
Oleg Kalnichevski 177fc804e5 HTTPASYNC-160: HttpAsyncClient in INACTIVE or STOPPED state throws a IllegalStateException causing the current thread to terminate 2020-04-18 20:41:21 +02:00
heejeongkim 12ec6f15ea
HTTPCLIENT-2076: fix NPE in LaxExpiresHandler (#222) 2020-04-17 11:14:21 +02:00
Oleg Kalnichevski 3e484c0830 HTTPCLIENT-2074: disallow direct execution of CONNECT methods by standard client implementations 2020-04-08 14:58:38 +02:00
Ralph 272f00297e HTTPCLIENT-2075: new method Request.responseTimeout(Timeout) in Fluent HC 2020-04-08 10:32:14 +02:00
Oleg Kalnichevski a93d5c0c1d HTTPCLIENT-2073: (regression) WindowsNegotiateScheme incorrectly rejects empty NTLM challenge 2020-04-05 13:22:13 +02:00
Oleg Kalnichevski 9ea79c68c5 Minor tweaks to auth execution logging 2020-04-05 12:43:26 +02:00
Oleg Kalnichevski 92100e13a6 HTTPCLIENT-2069: RequestConfig#copy does not copy #responseTimeout 2020-03-31 14:00:01 +02:00
Oleg Kalnichevski 98daeabc05 HTTPCLIENT-2061: corrected sequence of request execution interceptors in classic HttpClient 2020-03-17 14:51:19 +01:00
Oleg Kalnichevski 1928f8db40 Rewrite of redirect integration test cases 2020-03-17 14:47:46 +01:00
slisaasquatch ffa0530bb2 Fix NPE for null HttpContext in minimal async clients 2020-03-07 11:09:04 +01:00
slisaasquatch 99f7d2b710 Removed unnecessary BasicFuture wrapping 2020-03-07 11:07:05 +01:00
Oleg Kalnichevski 56ef8b8642 Use try-with-resources in examples 2020-02-24 12:07:55 +01:00
Oleg Kalnichevski f4fb8b5e1d Added Clirr API compatibility check 2020-02-22 14:18:17 +01:00
Oleg Kalnichevski 61f3a943e1 Upgraded HttpClient version to 5.0.1-SNAPSHOT 2020-02-22 09:56:16 +01:00
Oleg Kalnichevski ad47e950e3 Updated release notes for HttpClient 5.0 release 2020-02-19 09:37:59 +01:00
Oleg Kalnichevski 24b3f71a8f Removed deprecated methods 2020-02-19 09:37:46 +01:00
Oleg Kalnichevski 53e172553d HTTPCLIENT-2051: Change POST to GET for 301, 302 and 303 redirects. Other unsafe methods to be redirected as is. 2020-02-17 14:56:31 +01:00
Oleg Kalnichevski 42cae6999c Use finite (3 minutes) connection keep-alive period by default 2020-02-17 09:12:39 +01:00
Oleg Kalnichevski 85eec39f7f Updated Travis CI JDK matrix; replaced Oracle JDK 11 with OpenJDK 12 and Oracle JDK 12 2020-02-15 14:46:59 +01:00
Oleg Kalnichevski 934a6d5e77 Removed dodgy work-around for resumed TLS sessions given that JDK-8212885 fix has been ported to Java 11 and released in Oracle JDK 11.0.3 2020-02-15 14:46:59 +01:00
Oleg Kalnichevski d601aff61d Upgraded HttpCore dependency to version 5.0 2020-02-15 14:22:10 +01:00
Oleg Kalnichevski 5bcf6b61f3 Bug fix: custom SSL context is ignored 2020-02-14 10:37:03 +01:00