Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accept any HttpRequest instead of HttpUriRequest in CommonHttpClient #305

Merged
merged 3 commits into from
Jul 9, 2024

Conversation

renaudhartert-db
Copy link
Contributor

@renaudhartert-db renaudhartert-db commented Jul 4, 2024

Changes

This PR addresses a regression reportedly introduced in PR #290 when connecting via a proxy that requires authentication (see context).

The problem comes from a casting exception in CommonHttpClient which attempts to cast a BasicHttpRequest (which represents the next request after receiving the auth required response) into a HttpUriRequest. This PR solves the casting issue by processing the ancestor of both classes, HttpRequest.

Context

The regression was detected when trying to authenticate via a Proxy that requires authentication. In particular, the request to respond to the proxy's authentication request is automatically created as a BasicHttpRequest by the apache HttpClient.

Tests

Unit tests and integration tests are passing. The fix was also verified by the user who uncovered the issue.

Note: we should add a regression test that simulate the proxy setting. However, I'd like to take the time to experiment with different configurations. Given that the change is relatively simple, I'd recommend to proceed with this PR and add the test in a follow-up PR.

@renaudhartert-db renaudhartert-db changed the title Update CommonsHttpClient.java Parse BasicHttpResponse in CommonsHttpClient Jul 5, 2024
@renaudhartert-db renaudhartert-db changed the title Parse BasicHttpResponse in CommonsHttpClient Accept any HttpRequest instead of HttpUriRequest in CommonHttpClient Jul 5, 2024
@renaudhartert-db renaudhartert-db marked this pull request as ready for review July 9, 2024 09:16
Copy link
Contributor

@tanmay-db tanmay-db left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just for my understanding, how was the regressions detected?

@renaudhartert-db
Copy link
Contributor Author

LGTM. Just for my understanding, how was the regressions detected?

Thanks! I've added some context to the PR description

@renaudhartert-db renaudhartert-db added this pull request to the merge queue Jul 9, 2024
Merged via the queue into main with commit 122ea39 Jul 9, 2024
9 checks passed
@renaudhartert-db renaudhartert-db deleted the rh/test-uri-fix branch July 9, 2024 15:43
tanmay-db added a commit that referenced this pull request Jul 10, 2024
### New Features and Improvements

 * Specify proxy auth explicitly when using system proxy ([#300](#300)).

### Internal Changes

 * Add Release tag and Workflow Fix ([#309](#309)).
 * Improve Changelog by grouping changes ([#308](#308)).

### Other Changes

 * Accept any `HttpRequest` instead of `HttpUriRequest` in `CommonHttpClient` ([#305](#305)).
 * Test parsing of error messages with `int` error codes ([#303](#303)).
@tanmay-db tanmay-db mentioned this pull request Jul 10, 2024
github-merge-queue bot pushed a commit that referenced this pull request Jul 12, 2024
## 0.27.1

### New Features and Improvements
* Specify proxy auth explicitly when using system proxy
([#300](#300)).
* Accept any `HttpRequest` instead of `HttpUriRequest` in
`CommonHttpClient`
([#305](#305)).
* Add credential provider for Azure Github OIDC
([#307](#307)).

### Internal Changes
* Add Release tag and Workflow Fix
([#309](#309)).
* Improve Changelog by grouping changes
([#308](#308)).
* Test parsing of error messages with `int` error codes
([#303](#303)).
* Run AccountClientIT test only for aws-prod-ucacct
([#311](#311)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants