tailscale/ipn
shayne c750186830
ipn/ipnlocal: [serve] Trim mountPoint prefix from proxy path (#7334)
This change trims the mountPoint from the request URL path before
sending the request to the reverse proxy.

Today if you mount a proxy at `/foo` and request to
`/foo/bar/baz`, we leak the `mountPoint` `/foo` as part of the request
URL's path.

This fix makes removed the `mountPoint` prefix from the path so
proxied services receive requests as if they were running at the root
(`/`) path.

This could be an issue if the app generates URLs (in HTML or otherwise)
and assumes `/path`. In this case, those URLs will 404.

With that, I still think we should trim by default and not leak the
`mountPoint` (specific to Tailscale) into whatever app is hosted.
If it causes an issue with URL generation, I'd suggest looking at configuring
an app-specific path prefix or running Caddy as a more advanced
solution.

Fixes: #6571

Signed-off-by: Shayne Sweeney <shayne@tailscale.com>
2023-03-28 19:23:50 -04:00
..
ipnauth all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipnlocal ipn/ipnlocal: [serve] Trim mountPoint prefix from proxy path (#7334) 2023-03-28 19:23:50 -04:00
ipnserver all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipnstate cmd/tailscale: surface node-key for locked out tailnet-lock peers 2023-03-09 11:06:23 -10:00
localapi ipn/localapi: flesh out the 'debug derp' checks 2023-03-10 13:47:34 -05:00
policy all: update copyright and license headers 2023-01-27 15:36:29 -08:00
store all: use Go 1.20's bytes.Clone 2023-02-01 17:39:18 -08:00
backend.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
doc.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
fake_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipn_clone.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipn_view.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
prefs.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
prefs_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
serve.go funnel: change references from alpha to beta (#7613) 2023-03-28 19:23:37 -04:00
serve_test.go ipn: add Funnel port check from nodeAttr 2023-03-11 11:20:52 -08:00
store.go ipn: remove unused NLKeyStateKey constant 2023-02-08 11:19:28 -08:00