From b4f37483530474fa1feea9c68f526d59b06beffb Mon Sep 17 00:00:00 2001 From: "gcp-cherry-pick-bot[bot]" <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:44:39 +0200 Subject: [PATCH] internal: restore /ping behaviour for embedded outpost (cherry-pick #11568) (#11570) internal: restore /ping behaviour for embedded outpost (#11568) Signed-off-by: Jens Langhammer Co-authored-by: Jens L. --- internal/outpost/proxyv2/proxyv2.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/outpost/proxyv2/proxyv2.go b/internal/outpost/proxyv2/proxyv2.go index cd01290385..9bc893b6c2 100644 --- a/internal/outpost/proxyv2/proxyv2.go +++ b/internal/outpost/proxyv2/proxyv2.go @@ -6,6 +6,7 @@ import ( "errors" "net" "net/http" + "strings" "sync" sentryhttp "github.com/getsentry/sentry-go/http" @@ -70,12 +71,20 @@ func NewProxyServer(ac *ak.APIController) *ProxyServer { } func (ps *ProxyServer) HandleHost(rw http.ResponseWriter, r *http.Request) bool { + // Always handle requests for outpost paths that should answer regardless of hostname + if strings.HasPrefix(r.URL.Path, "/outpost.goauthentik.io/ping") || + strings.HasPrefix(r.URL.Path, "/outpost.goauthentik.io/static") { + ps.mux.ServeHTTP(rw, r) + return true + } + // lookup app by hostname a, _ := ps.lookupApp(r) if a == nil { return false } + // check if the app should handle this URL, or is setup in proxy mode if a.ShouldHandleURL(r) || a.Mode() == api.PROXYMODE_PROXY { - a.ServeHTTP(rw, r) + ps.mux.ServeHTTP(rw, r) return true } return false