URL translation via VSCODE_PROXY_URI drops query parameters
- 主要言語
- TypeScript
- スター
- 79.3k
- フォーク
- 6.8k
- 平均マージ
- 2日 6時間
- マージ済み PR(30日)
- 41
説明
### Is there an existing issue for this?
- [x] I have searched the existing issues
### OS/Web Information
- Web Browser: Chrome
- Local OS: MacOS
- Remote OS: Ubuntu
- Remote Architecture: amd64
- `code-server --version`: 1.102.2
### Steps to Reproduce
1. Run code-server with a configured `VSCODE_PROXY_URI`
2. Attempt to redirect from a local URL to the proxy, where the URL contains a query parameter.
(Example: http://127.0.0.1:8888/lab?token=2212f0697bfed279e9a6fa898291a0f44f313b3510965815)
3. Observe that code-server will correctly translate the base url to `8888-{my-proxy}/lab`, but that the query param `token=...` is not passed along. Navigating to the correct URL directly (`8888-{my-proxy}/lab?token=...`) works correctly.
The example I'm using here is based on attempting to launch jupyterlab via a terminal in code-server,
but this bug is not specific to jupyterlab, the problem presents itself for any URL that contains a query parameter part.
### Expected
The query parameters are copied over to the proxied URL, and translation works seamlessly.
### Actual
The query parameters are dropped from the proxied URL, and need to be manually supplied in order to provide the correct data to the server.
### Logs
```shell
```
### Screenshot/Video
_No response_
### Does this bug reproduce in native VS Code?
This cannot be tested in native VS Code
### Does this bug reproduce in GitHub Codespaces?
I did not test GitHub Codespaces
### Are you accessing code-server over a secure context?
- [x] I am using a secure context.
### Notes
I suspect that [this part](https://github.com/coder/code-server/blob/v4.106.2/patches/proxy-uri.diff#L59-L62) of the proxy_uri patch does not function correctly, but I know too little of the workings of vscode to be sure.
コントリビューションガイド
調査の方向性
まず patches/proxy-uri.diff の59-62行目を読み、提供された VSCODE_PROXY_URI と ?token=.... を含むURLを使って翻訳を再現します。プロキシされたURLがどのように組み立てられるかを追跡し、クエリパラメーターが翻訳後のURLに残っていることを確認します。JupyterLabの例のようなURLが、トークンを手動で指定しなくても機能すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- typescript, vscode
- 領域
- backend, devtools
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 55/100