coder / coder/code-server

URL translation via VSCODE_PROXY_URI drops query parameters

オープン
#7,573 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る
bug
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。