You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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>
1 year ago
..
ipnauth all: update copyright and license headers 1 year ago
ipnlocal ipn/ipnlocal: [serve] Trim mountPoint prefix from proxy path (#7334) 1 year ago
ipnserver all: update copyright and license headers 1 year ago
ipnstate cmd/tailscale: surface node-key for locked out tailnet-lock peers 1 year ago
localapi ipn/localapi: flesh out the 'debug derp' checks 1 year ago
policy all: update copyright and license headers 1 year ago
store all: use Go 1.20's bytes.Clone 1 year ago
backend.go all: update copyright and license headers 1 year ago
doc.go all: update copyright and license headers 1 year ago
fake_test.go all: update copyright and license headers 1 year ago
ipn_clone.go all: update copyright and license headers 1 year ago
ipn_view.go all: update copyright and license headers 1 year ago
prefs.go all: update copyright and license headers 1 year ago
prefs_test.go all: update copyright and license headers 1 year ago
serve.go funnel: change references from alpha to beta (#7613) 1 year ago
serve_test.go ipn: add Funnel port check from nodeAttr 1 year ago
store.go ipn: remove unused NLKeyStateKey constant 1 year ago