mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-12 02:15:01 +00:00
fix app access regression when the app is on a leaf cluster (#47778)
* only redirect to the public addr of an app when an app redirect is required * rename local variable from 'host' to 'addr' * rename param
This commit is contained in:
@@ -617,11 +617,14 @@ const (
|
||||
//
|
||||
// The URL's are formed this way to help isolate the path params reserved for the app
|
||||
// launchers route, where order and existence of previous params matter for this route.
|
||||
func makeAppRedirectURL(r *http.Request, proxyPublicAddr, hostname string, req launcherURLParams) string {
|
||||
func makeAppRedirectURL(r *http.Request, proxyPublicAddr, addr string, req launcherURLParams) string {
|
||||
if req.requiresAppRedirect {
|
||||
addr = req.publicAddr
|
||||
}
|
||||
u := url.URL{
|
||||
Scheme: "https",
|
||||
Host: proxyPublicAddr,
|
||||
Path: fmt.Sprintf("/web/launch/%s", hostname),
|
||||
Path: fmt.Sprintf("/web/launch/%s", addr),
|
||||
}
|
||||
|
||||
// Presence of a stateToken means we are beginning an app auth exchange.
|
||||
@@ -634,7 +637,7 @@ func makeAppRedirectURL(r *http.Request, proxyPublicAddr, hostname string, req l
|
||||
v.Add("required-apps", req.requiredAppFQDNs)
|
||||
u.RawQuery = v.Encode()
|
||||
|
||||
urlPath := []string{"web", "launch", hostname}
|
||||
urlPath := []string{"web", "launch", addr}
|
||||
|
||||
// The order and existence of previous params matter.
|
||||
//
|
||||
|
||||
@@ -81,12 +81,8 @@ func (h *Handler) redirectToLauncher(w http.ResponseWriter, r *http.Request, p l
|
||||
"https://goteleport.com/docs/application-access/guides/connecting-apps/#start-authproxy-service.")
|
||||
return trace.BadParameter("public address of the proxy is not set")
|
||||
}
|
||||
host := p.publicAddr
|
||||
if host == "" {
|
||||
host = r.Host
|
||||
}
|
||||
|
||||
addr, err := utils.ParseAddr(host)
|
||||
addr, err := utils.ParseAddr(r.Host)
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user