323 Commits

Author SHA1 Message Date
Oleg Kalnichevski
3575cff3dc Bug fix: fixed handling of private domains by PublicSuffixMatcher 2020-01-29 09:43:19 +01:00
Gary Gregory
95dbbf099b Now that ClassicHttpRequests is no longer an enum, we need to way to
generically build requests from method names. Update all factory classes
with matching APIs for Method and String method name inputs.

(#204), (#205)
2020-01-28 23:11:56 +01:00
Oleg Kalnichevski
afa8f5ecd1 Upgraded HttpClient version to 5.0-beta8-SNAPSHOT 2020-01-26 12:42:54 +01:00
Michael Osipov
5a8a6d0fc8 Convert convenience builders form enums to final classes
Turn exhaustive enum builder pattern to a final class with builder
methods serving HTTP request objects.

This closes #202
2020-01-19 20:23:33 +01:00
Oleg Kalnichevski
303e435d79 Domain name normalization 2020-01-14 11:01:59 +01:00
Gary Gregory
071fa68a3c
Misc clean ups. (#200) 2020-01-09 11:45:04 -05:00
Michael Osipov
0812192f46 Rename CookieSpecs enum to StandardCookieSpec final class
Modeled after StandardCharsets, the new class indicates a non-exhaustive
list of standard cookie specifications by name supported by the HttpClient.
The previous enum suffered from two issues:

* it was exhaustive implying that no more cookie specifications can be supported
* its sole purpose was to contain an id for the declared cookie specification;
  the enum values theirselves were never used directly

This also reuses the naming approach of HttpMultipartMode of symbolic names for
implementation behavior.

This closes #197
2020-01-08 17:29:09 +01:00
Ryan Schmitt
87cc64fc88 DefaultHostnameVerifier: Match DNS and CN names against ICANN domains
This change ensures that during hostname verification the public suffix
list is only used to prevent wildcard matching against entire TLDs (e.g.
`*.com`). Currently, private domains are also being matched against,
which is preventing reasonable wildcards (such as
`*.s3.eu-central-1.amazonaws.com`) from being respected.
2020-01-07 10:09:02 -08:00
Ryan Schmitt
3aec96d3db Upgraded HttpCore to version 5.0-beta11 2020-01-07 15:41:18 +01:00
Michael Osipov
3730b03a99 Properly distinguish between AuthScheme and auth scheme name
Throughout the code the terms 'authScheme' and 'scheme' have been used
synonymously for an AuthScheme instance and a string-based auth scheme
name. To avoid confusion, fields, methods and variable have been adapted
to distinguish both properly. If necessary, Javadoc has been modified to
denote the nature of the input.

Also an auth scheme name is retained as-is, but normalized to lowercase
if comparsion is required.

This closes #193
2020-01-01 22:51:19 +01:00
Gary Gregory
634886ab61 [HTTPCLIENT-2046] Rename AuthSchemes enum to StandardAuthScheme final class
Modeled after StandardCharsets, the new class indicates a non-exhaustive
list of standard auth schemes by name supported by the HttpClient. The
previous enum suffered from two issues:

* it was exhaustive implying that no more auth schemes can be supported
* its sole purpose was to contain an id for the declared auth scheme;
  the enum values theirselves were never used directly

This closes #196
2020-01-01 21:57:53 +01:00
Oleg Kalnichevski
54a341ea92 Simplified MIME multipart generation modes (legacy, strict and extended) 2020-01-01 13:47:53 +01:00
Oleg Kalnichevski
56463de35d MIME code cleanup and class renaming (no functional changes) 2020-01-01 13:47:53 +01:00
Gary Gregory
3fd383f870 [HTTPCLIENT-2044] Don't create stateless/immutable factory objects
Decide later if some of these classes should have a private default
constructor.

This closes #195
2019-12-31 20:43:56 +01:00
Gary Gregory
eaa8c5f648
[HTTPCLIENT-2043] Rename classes documented as factories from *Provider to *Factory (#194)
This closes #194
2019-12-31 11:27:16 -05:00
Michael Osipov
f71ee38819 [HTTPCLIENT-2041] AuthenticationStrategy#select() assumes challanges key to be lowercase
Properly document that lowercase keys are required.
2019-12-27 12:32:13 +01:00
Michael Osipov
782d8e40a0 Use proper scheme names in text 2019-12-27 12:26:55 +01:00
Michael Osipov
167dbc7576 Make consistent use of AuthSchemes#id
This closes #189
2019-12-27 12:26:34 +01:00
Michael Osipov
2744c73471 Apply consistent id field names
As with HttpCore an entity should have a consistent id field, named 'id'
throughout the entire codebase.

This closes #188
2019-12-26 15:32:22 +01:00
Oleg Kalnichevski
a2ebb62881 HTTPCLIENT-2040: Copy headers from the original request to the redirect request 2019-12-25 09:29:11 +01:00
Oleg Kalnichevski
35a63d3426 Removed RFC 2965 specific requirements deprecated and superseded by RFC 6265
Partially reverts commit 379a8351
2019-12-20 10:24:20 +01:00
Michael Osipov
86b1a3b711 Use language-agnotic Locale.ROOT 2019-12-15 16:15:36 +01:00
Michael Osipov
667fc9e218 HTTPCLIENT-2037: AIMDBackoffManager should use TimeValue 2019-12-15 12:21:59 +01:00
Michael Osipov
8be681964c Use paste tense for EntityBuilder#gzipCompressed
Both gzipCompressed and chunked denote a state of an entity where both
should use consistent tenses.
2019-12-15 11:36:32 +01:00
Michael Osipov
6c1e4676a1 Remove unused StringBuilder 2019-12-15 11:36:31 +01:00
Michael Osipov
41a7f5f718 Correct typo in class name 'MultihomeConnectionInitiator'
This class was erronously named 'MultuhomeConnectionInitiator'
2019-12-15 11:36:30 +01:00
Michael Osipov
8adc6c3277 Fix variable name typo 2019-12-15 11:36:29 +01:00
Michael Osipov
830263d279 Use TimeValue#sleep() 2019-12-15 11:28:11 +01:00
Michael Osipov
3d502c9ac4 Correct Javadoc 2019-12-15 11:28:11 +01:00
Michael Osipov
434d5e5046 Fix formatting 2019-12-15 11:28:11 +01:00
Michael Osipov
bca9a873a5 Use consistent variable names 2019-12-15 11:28:08 +01:00
Michael Osipov
52c6cf7037 HTTPCLIENT-2035: Remove HttpRequestRetryHandler in favor of HttpRequestRetryStrategy
This closes #183
2019-12-12 08:45:27 +01:00
Michael Osipov
e06af3d50b HTTPCLIENT-2019: Remove ServiceUnavailableRetryStrategy in favor of HttpRequestRetryStrategy
This closes #182
2019-12-12 08:35:08 +01:00
Michael Osipov
6cff260eff HTTPCLIENT-2031: Don't use plural names for enums
This closes #180
2019-12-10 10:50:28 +01:00
Michael Osipov
1d56c27e6d HTTPCLIENT-2034: Introduce HttpRequestRetryStrategy 2019-12-10 08:43:14 +01:00
Oleg Kalnichevski
070f30fdc4 Fixed session i/o and wire logging in async clients 2019-12-05 15:30:18 +01:00
Oleg Kalnichevski
f3c418c50a CloseableHttpAsyncClient to support explicit HttpHost execution parameter 2019-12-05 10:15:21 +01:00
Oleg Kalnichevski
d0541123c2 Fixed typo in method name (no functional changes) 2019-12-05 10:15:21 +01:00
Michael Osipov
742bc47a80
HTTPCLIENT-2020: DefaultBackoffStrategy should include TOO_MANY_REQUESTS (429) too 2019-11-27 13:16:44 +01:00
Niels Basjes
9552d5dd1d HTTPCLIENT-2030: Fix PublicSuffixMatcher::getDomainRoot on invalid hostnames 2019-11-26 11:53:49 +01:00
Peter Frank
72af7cf5a5 HTTPCLIENT-2028: Now allowing 0 for validateAfterInactivity
The purpose of this change is to allow stale checking all the time, in previous versions of HttpClient this was accomplished by staleConnectionCheckEnabled=true which is now removed, this adds that idea back
2019-11-22 22:36:07 +01:00
chao chang
989ad0472d update text in pool stats description
total kept alive -> total available
2019-11-10 15:58:52 +01:00
Oleg Kalnichevski
d62616bb29 Upgraded HttpCore dependency to version 5.0-beta10 2019-10-31 15:15:53 +01:00
Oleg Kalnichevski
25748c48b2 Upgraded HttpClient version to 5.0-beta7-SNAPSHOT 2019-10-09 10:30:55 +02:00
Oleg Kalnichevski
7d523e9113 Handle TLS session upgrade failures 2019-10-04 14:45:56 +02:00
Ryan Schmitt
90c07f3490 Upgrade httpcore.version to 5.0-beta9 2019-10-04 14:42:38 +02:00
Ryan Schmitt
d655994950 Fix fallback PublicSuffixMatcher 2019-10-03 11:01:32 -07:00
Ryan Schmitt
35949e40a9 ClientTlsStrategyBuilder: Set default tlsDetailsFactory 2019-09-27 13:10:24 -07:00
Ryan Schmitt
a1adf79100 Enforce h2 TLS rules after negotiating TLS, not before 2019-09-27 13:09:40 -07:00
Gary Gregory
5d21af4849 Remove extra parens. 2019-09-04 20:57:07 -04:00