Commit Graph

3429 Commits

Author SHA1 Message Date
Oleg Kalnichevski 9c0575494a HTTPCLIENT-2232: last protocol interceptrs moved at the end of the H2 protocol processing pipeline 2022-09-11 18:50:45 +02:00
Oleg Kalnichevski ed7701c509 H2 async runtime to proactively set HTTP/2 protocol version in the execution context 2022-09-11 18:47:31 +02:00
Oleg Kalnichevski 3fe6a8bcdf HTTPCLIENT-2231: a race condition in the main async exec when the request execution on an I/O thread is faster then execution pipeline management on the client thread 2022-08-19 14:04:25 +02:00
Arturo Bernal 18fa09f6a2 Avoid duplicate redundant objects and use Singleton instead. 2022-07-08 19:11:10 +02:00
Gary Gregory dca9108352 Use try-with-resources 2022-07-06 10:56:04 -04:00
Gary Gregory 1cd12fc1dc Cleaning up:
- Super interface already implements FutureCallback
- No need to override methods to only call super
- Add missing Javadoc tag
- Access static field directly
2022-07-06 10:13:23 -04:00
Tero Saarni fefbf0b756 Bumping versions of slf4j and log4j.
Removes CVE-2021-44832.
2022-07-01 10:54:17 +02:00
jkmcl 69e2ed6c41 Remove unused local variable 2022-07-01 10:50:03 +02:00
jkmcl 8d9b52abd1 Remove redundant if 2022-07-01 10:50:03 +02:00
dependabot[bot] 9b63f12b8a Bump actions/dependency-review-action from 1 to 2
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 1 to 2.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 10:49:03 +02:00
Oleg Kalnichevski 3771129376 HTTPCLIENT-2225: connection route calculation does not take the default RequestConfig into account 2022-06-29 09:46:19 +02:00
jkmcl 518eb410fe Avoid unnecessary use of Instant.toEpochMilli
Avoid unnecessary use of Instant.toEpochMilli by using Instant.compareTo
to compare Instants direclty
2022-06-26 23:34:51 +02:00
jkmcl 15951d8094 Use HTTP header name constants
Use HTTP header name constants instead of string literals.
2022-06-20 19:25:00 +02:00
dependabot[bot] bfe177fc59 Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-18 12:39:04 +02:00
dependabot[bot] 1cbc66f302 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-18 12:38:45 +02:00
Carter Kozak 944e308a52 ResponseEntityProxy.writeTo(null) leaves connections in the correct state
Previously writeTo would conditionally delegate to the wrapped
entity if the provided outputstream was non-null, however in the
null case the entity would not be drained and the connection would
be released potentially with bytes remaining. If this occurs in
practice, it may result in timeouts as the server expects to write
data to the response while the client is attempting to send a
request.
2022-06-13 19:29:19 +02:00
Carter Kozak 3bd017cb0a HTTPCLIENT-2221 Closing a classic response/entity allows connection reuse
Previously, a partially consumed response body closed via
CloseableHttpResponse.close or HttpEntity.close would fully consume
remaining bytes (via close), however it would not release the
connection for reuse.
If CloseableHttpResponse.close was called, it would follow the close
with a discard/disconnect, however if only the entity was closed,
the connection would remain in a checked-out (leaked) state.

Now, we take advantage of the fact that closing a response stream
on any reusable connection is required to drain bytes on closure.
Failures are detected by writeTo and the stream returned by
getContent, so we can be confident that we will not return a
broken connection to the pool.
2022-06-11 14:11:06 +02:00
Oleg Kalnichevski 8dbaf131f5 Upgraded HttpClient version to 5.2-beta2-SNAPSHOT 2022-06-07 14:42:03 +02:00
Oleg Kalnichevski 91a93accd7 Corrected javadoc errors in Base64 2022-06-03 23:48:13 +02:00
Oleg Kalnichevski 80c0404ff9 Updated release notes for HttpClient 5.2-beta1 release 2022-06-03 11:21:29 +02:00
Oleg Kalnichevski 9e0ff508e8 Upgraded HttpCore to version 5.2-beta2 2022-06-01 23:04:39 +02:00
j3graham 26dcc6f914 HTTPCLIENT-2218: Use Java 8 Base64 utility (#370) 2022-06-01 23:04:29 +02:00
Naveen 8eb7716cb8 chore: Included githubactions in the dependabot config
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-05-20 08:39:59 +02:00
殷成涛 db47570efe
add br decompression support (#363) 2022-05-18 15:18:25 +02:00
naveensrinivasan 35732cacb2 chore(deps): Included dependency review
> Dependency Review GitHub Action in your repository to enforce dependency
> reviews on your pull requests.
> The action scans for vulnerable versions of dependencies introduced by package version
> changes in pull requests,
> and warns you about the associated security vulnerabilities.
> This gives you better visibility of what's changing in a pull request,
> and helps prevent vulnerabilities being added to your repository.

https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-05-17 05:34:27 +02:00
nathannaveen 47d0946372 chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>
2022-05-13 14:50:02 +02:00
niranjan ghule 34327ae83e Refactor testcase 2022-05-11 11:56:59 +02:00
niranjan ghule daac18619a Remove unused code 2022-05-05 10:52:49 +02:00
Oleg Kalnichevski 62fb4bcbe0 HTTPCLIENT-2212: MinimalHttpAsyncClient fails to release client endpoints in case of a connect error (such as TLS handshake failure) 2022-05-05 10:47:27 +02:00
Prashant Singh 558066c76b Updated copyright statement in NOTICE.txt 2022-05-04 09:04:15 +02:00
Richard Hernandez 36678c44dc Create daemon threads in InternalAbstractHttpAsyncClient 2022-04-06 12:22:36 -07:00
Anthony Baldocchi 94017237b2
HTTPCLIENT-2080: add getRetryInterval to HttpRequestRetryStrategy for use on retriable IOExceptions (#356) 2022-03-30 16:31:07 +02:00
Ryan Schmitt c395aad5ad Fix infinite recursion in SSLConnectionSocketFactory 2022-03-23 09:09:14 +01:00
Oleg Kalnichevski f00ce5da9e HTTPCLIENT-2200: Protocol interceptors are executed before the connection route has been fully established 2022-03-17 17:43:22 +01:00
Oleg Kalnichevski a3bbcc82ae Upgraded HttpCore to version 5.2-beta1 2022-03-17 17:18:12 +01:00
John Gallagher 5f9bc347ee StringBody: just write the bytes to the output stream 2022-03-16 10:01:24 +01:00
Andriy Redko 6a487ba686
HTTPCLIENT-2209: Pass HttpContext to AsyncClientConnectionOperator (#353) 2022-03-12 18:53:45 +01:00
Oleg Kalnichevski 23bb9b89de HTTPCLIENT-2206: Corrected resource de-allocation by fluent response objects 2022-02-27 10:25:31 +01:00
David Schlosnagle 04aeaa5bcd
Optimize ExecSupport.getNextExchangeId() (#352) 2022-02-26 12:45:18 +01:00
cda007 157174543f Added option to set an IOSessionListener on async client builders 2022-02-21 12:15:30 +01:00
Oleg Kalnichevski 19626731c0 HTTPCLIENT-2203: Corrected target host normalization by the request execution interceptors; added ContextBuilder with support for preemptive authentication initialization 2022-02-13 20:07:47 +01:00
Oleg Kalnichevski b9a6b5ed89 HTTPCLIENT-2202: MemcachedHttpCacheStorage to support MemcachedClientIF interface 2022-02-10 20:33:59 +01:00
Oleg Kalnichevski 8881ef4b3f Fixed incompatibility with older versions of Android shipping with Commons Codec < 1.4 2022-01-24 14:16:33 +01:00
Oleg Kalnichevski 235900eb57 Bug fix: ByteArrayBuilder incorrectly handles empty strings 2022-01-24 14:05:33 +01:00
Andrei Vasilev 75e8dc6f9b HTTPCLIENT-2198, Fixed NPE in TlsConfig.toString()
Replaced called to Arrays.asList() to Arrays.toString(), which allows for null argument.
2022-01-22 08:55:40 +01:00
Andrei Vasilev d4c0e961ab HTTPCLIENT-2198, Fixed AbstractClientTlsStrategy to respect HttpVersionPolicy
Updated AbstractClientTlsStrategy to pass only the HttpVersionPolicy set by TlsConfig  instead of the entire TlsConfig to H2TlsSupport.selectApplicationProtocols() method.
2022-01-21 09:04:24 +01:00
Oleg Kalnichevski 3ee994b25c HTTPCLIENT-2195, regression: classic ConnectExec incorrectly discards the proxy response body even if the request cannot be executed and the response is final 2022-01-13 15:37:23 +01:00
Arturo Bernal 9e876e7ff0 Remove no need it ConnectionConfig. 2022-01-13 15:04:20 +01:00
Arturo Bernal d2a9977290 HTTPCLIENT-2188 - Improve logging when BasicHttpClientConnectionManager is still allocated 2022-01-13 15:00:54 +01:00
JasonMathison dd0bbda070 Httpclient-2194 async retries not including body (#343) 2022-01-05 21:55:58 +01:00