Skip to content

[ReverseProxyPlugin] Misdirected Request (E2815) while proxying to upstream https endpoint #1045

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

Closed
abhinavsingh opened this issue Jan 23, 2022 · 1 comment
Assignees
Labels
Bug Bug report in proxy server

Comments

@abhinavsingh
Copy link
Owner

Default plugin values work fine:

REVERSE_PROXY_PASS = [
    b'http://httpbin.org/get',
    b'https://httpbin.org/get',
]

But replacing the url with https://files.pythonhosted.org/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl#sha256=077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 fails the curl invocation with Misdirected Request (E2815)

@abhinavsingh abhinavsingh added the Bug Bug report in proxy server label Jan 23, 2022
@abhinavsingh abhinavsingh self-assigned this Jan 23, 2022
abhinavsingh added a commit that referenced this issue Jan 23, 2022
@abhinavsingh
Copy link
Owner Author

I think above example is bound to fail anyways. We shouldn't reverse proxy in the above fashion to begin with. As request packet dispatched to upstream contains Host header originally used by the client. By default, ReverseProxy sends request to upstream as-is, without any modifications.

Fix in #1046 is not correct either in that respect. We should not change the Host header field. In-fact, we can provide a ReverseProxyBasePlugin hook which allows developers to modify the request before dispatching to upstream server.

abhinavsingh added a commit that referenced this issue Jan 23, 2022
…stream (#1046)

* Fix #1045

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* no conn log

* Do not edit host header by default

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
abhinavsingh added a commit that referenced this issue Jan 24, 2022
* [Windows] Remove `--threadless` from `TestCase` (#1025)

[Windows] Remove `--threadless` from `TestCase`

* Handle `SIGINFO`.  Try `kill -s INFO <pid>`. (#1024)

* Handle `SIGINFO`.  Try `kill -s INFO <pid>`.

Also remove dirty hack added in flags to incorporate `--basic-auth`
flag.  Add `__pycache__` to ignore list.  Disable http proxy
during acceptor benchmark.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* not on windows

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* no cover

* # pylint: disable=E1101

* Curl retry on error and check_output 2 minute timeout

* check output timeout None

* Update `faulthandler_timeout` to 2 minutes

* Disable `test_circular_imports`, `isort` integration now works

* Fix curl flags

* Revert back to older flags

* SIGINFO attribute might not even exist

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Add a skeleton app to demonstrate how to use `proxy.py` for standalone projects (#1029)

* Add a skeleton app structure

* Update `README.md` for skeleton app

* Add `skeleton-app` to pre commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update readme

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Move `Tls` module within core (#1030)

* [ReverseProxy] Move within core lib with ability to write its plugin (#1033)

* Move reverse proxy core within core lib

* Fix main test

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix doc and lint

* Fix lint

* Top level category for reverse plugin

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [Multiport] Prepare for listening on multiple ports (#1031)

* Convert `--port` to list of integers

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Prepare for multiport listener

* Multi listeners, but will fail in theory as no port override is currently performed

* Separate `listener` module

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update flags in readme

* Fix imports in listener test

* Fix flag parsing for `port` and `ports`

* Fix tests

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [Multiport] `Acceptor` can now accept work from multiple descriptors (#1036)

* Update acceptor to accept work from multiple ports

* import order

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix acceptor tests

* Tweak

* fix tests

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [ReverseProxy] Add integration tests (#1037)

* Add reverse proxy integration test

* Fix reverse proxy url for https integration

* Enable reverse proxy for docker build and test

* [ReverseProxyPlugin] Remove redundant `ca_file` flag when wrapping upstream (#1046)

* Fix #1045

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* no conn log

* Do not edit host header by default

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [SOCKS4] Packet parser & builder (#1047)

* Initial commit

* Parse socks4 packet

* Lint check

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix lint issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add handler test skeleton

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [CacheByContentTypePlugin] Prepare for content type parsing (#1038)

* Move default cache directory within `proxy.py` instance data directory

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add `CacheByContentTypePlugin` skeleton and remove unnecessary mixin

* Fix startup issues after removal of mixin

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* .

* Fix broken mock

* doc fix

* doc

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [Work] Refactor for generic work type (#1048)

* Add `TcpOrTlsSocket` type

* isort

* Update to use Fd executor

* Define `HostPort` type

* Fix fileno

* spellfix

* [Work] Refactor as FD work (#1049)

* Abstract out FD based work implementation

* No need of local/remote abstractions

* fix type

* Add `BaseLocalExecutor`

* Fix lint and tests

* [BaseRemoteExecutor] Base executor for processing work remotely (#1050)

* Abstract out FD based work implementation

* No need of local/remote abstractions

* fix type

* Add `BaseLocalExecutor`

* Fix lint and tests

* Add a `BaseRemoteExecutor`

* [Work] `kwargs` independent `work_klass` creation and work core (#1051)

* `kwargs` independent work klass and core

* Fix tests

* Add a `create` method to base class

* Lint fixes

* Pre `v2.4.0rc8` cleanups (#1053)

* Pre-release cleanups

* Add listener pool test

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add multi listener test

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Bug report in proxy server
Projects
None yet
Development

No branches or pull requests

1 participant