664 Commits

Author SHA1 Message Date
Oleg Kalnichevski
a0a38afbee Made handling of refused tunnel exception consistent between the classic and async protocol handler implementations; Proxy response body no longer gets buffered in memory in order to avoid excessive resource allocation in case of a proxy misbehavior 2024-04-25 10:54:36 +02:00
Richard Tippl
5eb15a1be4 Callbacks for Connection initialization 2024-04-09 15:00:15 +02:00
Gary Gregory
17142a7e74 Add missing Javadoc tag 2024-04-03 08:04:19 -04:00
Gary Gregory
c33f8ab4ac Add unit test for InMemoryDnsResolver 2024-04-02 10:48:44 -04:00
Vladimir Sitnikov
3b9bc89c26 HTTPCLIENT-2325 Avoid adding "; charset=" for multipart/form-data requests
Previusly, "charset" parameter was added to the Content-Type header, however adding "charset=..."
is not specified in RFC 7578, and it causes issues with (flawed?) HTTP servers.

The change does not modify ContentType.MULTIPART_FORM_DATA, and it might have backward compatibility
side-effects.

See
* https://github.com/apache/jmeter/issues/6250
* 6e56950cdf
* https://bz.apache.org/bugzilla/show_bug.cgi?id=61384
* https://github.com/akka/akka-http/issues/338
2024-03-18 19:05:12 +01:00
dependabot[bot]
ccff40612c Bump com.googlecode.maven-download-plugin:download-maven-plugin
Bumps [com.googlecode.maven-download-plugin:download-maven-plugin](https://github.com/maven-download-plugin/maven-download-plugin) from 1.7.1 to 1.8.1.
- [Release notes](https://github.com/maven-download-plugin/maven-download-plugin/releases)
- [Commits](https://github.com/maven-download-plugin/maven-download-plugin/compare/1.7.1...1.8.1)

---
updated-dependencies:
- dependency-name: com.googlecode.maven-download-plugin:download-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 13:20:28 +01:00
Oleg Kalnichevski
ccfb674a1e Upgraded HttpClient version to 5.4-alpha3-SNAPSHOT 2024-03-11 09:39:26 +01:00
Oleg Kalnichevski
eb6fd6b1c2 HttpClientContext and HttpCacheContext to use instance variables for standard attributes 2024-02-29 17:12:35 +01:00
Oleg Kalnichevski
762b18fe69 HttpClientContext to use instance variables for standard attributes 2024-02-29 17:12:35 +01:00
Arturo Bernal
f2b9a374d8
HTTPCLIENT-2319 / Updated the parseDate method to solely catch DateTimeException, streamlining error handling for date parsing and conversion. This change ensures comprehensive management of parsing issues, including those due to absent time-zone information, aligning with our documentation that the method should return null when conversion to Instant is not feasible. (#551) 2024-02-23 18:45:06 +01:00
Arturo Bernal
407b9152cc HTTPCLIENT-2318 - Enhance PoolingHttpClientConnectionManager with isShutdown State Check.
This commit introduces an `isShutdown` method to the `PoolingHttpClientConnectionManager` class, providing a thread-safe way to check whether the connection manager has been closed. The addition leverages an existing `AtomicBoolean` closed flag to ensure that the shutdown state can be queried reliably in concurrent environments.
2024-02-23 14:50:51 +01:00
Oleg Kalnichevski
8a7f707a61 Upgraded HttpCore to version 5.3-alpha2 2024-02-14 15:41:56 +01:00
Michael Lee
661589e386 Removed unused private fields and local variables 2024-02-10 14:18:04 +01:00
Michael Lee
5b411692a7 Correct logger name 2024-02-10 14:18:04 +01:00
Oleg Kalnichevski
2e46b62ffd HTTPCLIENT-2151: Support for JSSE in-built endpoint identification 2024-02-05 10:05:33 +01:00
Oleg Kalnichevski
e6e873d88b Internal connection operators to make use of the target name from the request URI authority 2024-02-01 08:57:33 +01:00
Oleg Kalnichevski
91ab690e50 DefaultRoutePlanner to take request authority into account when determining a route for HTTPS requests 2024-02-01 08:57:33 +01:00
Oleg Kalnichevski
528a8c050b RouteInfo and HttpRoute to include the target name from the URI authority in case it differs from the target host (the host recognizes multiple authorities) 2024-02-01 08:57:33 +01:00
Oleg Kalnichevski
fa8ca22d21 HTTPCLIENT-2316: BasicHttpClientConnectionManager incorrectly re-uses the released connection if it has been closed out by the protocol handler 2024-01-31 11:41:36 +01:00
Oleg Kalnichevski
23da984fb5 HTTPCLIENT-2070: Auth cache to no longer rely on Java serialization for auth state caching 2024-01-31 10:24:16 +01:00
Oleg Kalnichevski
3235f009d5 HTTPCLIENT-751: Support for RFC 2817 (Upgrading to TLS Within HTTP/1.1) 2024-01-29 14:15:16 +01:00
Oleg Kalnichevski
1111c62dd3 Classic ExecRuntime to support information responses (1xx) 2024-01-29 14:15:16 +01:00
Oleg Kalnichevski
7cf469c5cc Connect executors to update the execution context with the protocol and TLS details upon successful connect 2024-01-29 14:15:16 +01:00
Oleg Kalnichevski
9833c35728 Connection endpoints to provide TLS details and protocol version 2024-01-29 14:15:16 +01:00
Oleg Kalnichevski
9d225a6517 Realigned the behavior of TLS upgrade in the classic and async connection operators 2024-01-26 10:19:34 +01:00
Oleg Kalnichevski
9d75647eca Deprecated ConnectionSocketFactory, LayeredConnectionSocketFactory and their plain and SSL implementations in favor of DefaultClientTlsStrategy 2024-01-26 10:19:34 +01:00
Oleg Kalnichevski
c7fa0b1dad Standard client TLS strategy implementations to support upgrade of blocking sockets 2024-01-26 10:19:34 +01:00
Oleg Kalnichevski
851c8df9ff Move plain socket create and connect operations to HttpClientConnectionOperator 2024-01-26 10:19:34 +01:00
Andrea Cosentino
4adaa20be6 Use MessageDigest.isEquals method when comparing signatures in NTLMEngineImpl
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
2024-01-25 14:07:20 +01:00
Oleg Kalnichevski
4f8f34fe5c More consistent request interceptor naming; fixed inconsistent sequence of request interceptors in the classic and async HttpClient builders 2024-01-22 16:35:27 +01:00
Oleg Kalnichevski
a1e8e9082e Better ETag handling 2024-01-18 20:08:39 +01:00
Oleg Kalnichevski
07586902ec ETag API 2024-01-18 20:08:39 +01:00
Oleg Kalnichevski
a1fa1739bf Fixed a design mistake of ConnectionEndpoint having a direct dependency on HttpRequestExecutor class 2024-01-17 12:55:14 +01:00
Clayton Walker
a8db310f2d Allow backwards-compatible createSocket calls 2024-01-16 21:41:02 +01:00
Oleg Kalnichevski
b66ad6e4ff Example demonstrating how to make HttpClient negotiate or force a particular version of HTTP protocol during the TLS handshake 2024-01-16 10:29:55 +01:00
Oleg Kalnichevski
5f6ad302ba Corrected the use of the wrong request object in the example 2024-01-14 11:29:05 +01:00
Oleg Kalnichevski
8d9c764d6e Added example demonstrating how to get details of the underlying connection endpoint 2024-01-14 11:18:43 +01:00
Oleg Kalnichevski
b3da0ae138 Refactor ContextBuilder into a common abstract class and HttpClientContext specific builder 2024-01-12 09:23:42 +01:00
Oleg Kalnichevski
ef77109f35 HTTPCLIENT-2315: client builders fails to apply system properties to the default connection manager 2024-01-08 15:30:28 +01:00
Philip Helger
8228ddf28a HTTPCLIENT-2314: Handle gracefully a failure of DnsResolver to return a list of resolved addresses (#533) 2024-01-07 15:45:32 +01:00
Oleg Kalnichevski
e2385f7d9a HTTPCLIENT-2314: Throw ConnectionShutdownException in case of pooled connection having been closed or discarded instead of plain IllegalStateException 2024-01-05 14:29:15 +01:00
Oleg Kalnichevski
c5de6961d1 Upgraded HttpClient version to 5.4-alpha2-SNAPSHOT 2023-12-29 10:47:10 +01:00
Oleg Kalnichevski
bb27f666c2 Javadoc fix 2023-12-26 15:47:39 +01:00
Oleg Kalnichevski
4e43daf744 Regression: incorrect hash calculation (missing realm component) 2023-12-26 15:21:43 +01:00
Oleg Kalnichevski
1906539847 Use core percent codec instead of internal one 2023-12-23 13:28:51 +01:00
Oleg Kalnichevski
4dc82b40f6 Removed references to deprecated functions 2023-12-23 13:16:25 +01:00
Oleg Kalnichevski
20bd815e74 Upgraded HttpCore to version 5.3-alpha1 2023-12-23 12:24:16 +01:00
dependabot[bot]
f2ea21bea9 Bump com.googlecode.maven-download-plugin:download-maven-plugin
Bumps [com.googlecode.maven-download-plugin:download-maven-plugin](https://github.com/maven-download-plugin/maven-download-plugin) from 1.6.8 to 1.7.1.
- [Release notes](https://github.com/maven-download-plugin/maven-download-plugin/releases)
- [Commits](https://github.com/maven-download-plugin/maven-download-plugin/compare/1.6.8...1.7.1)

---
updated-dependencies:
- dependency-name: com.googlecode.maven-download-plugin:download-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-23 10:44:13 +01:00
Arturo Bernal
94e43b2bb4 Implement username* validation and decoding in DigestScheme (#511)
Introduces validation and decoding logic for the 'username*' field in the DigestScheme class. The changes ensure compliance with RFC 7616 and RFC 5987 by handling cases where the 'username' contains characters not allowed in an ABNF quoted-string.
2023-12-13 11:54:49 +01:00
Arturo Bernal
3eaf9bf5c0 Implement Support for Userhash Parameter in Digest Authentication as per RFC 7616 (#509)
This commit introduces support for the userhash parameter in Digest Authentication, conforming to the specifications outlined in RFC 7616. The userhash parameter enhances security by allowing the client to hash the username before transmission, thereby protecting the username during transport. This implementation ensures that when the server indicates support for username hashing (userhash=true), the client correctly calculates and includes the hashed username in the Authorization header field, adhering to the protocol defined in RFC 7616 for enhanced security in HTTP Digest Access Authentication.
2023-12-13 11:54:49 +01:00