From 4f7f81bfb086cf272f81e660b2980c82c10526b1 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Thu, 29 Jul 2021 12:48:24 -0700 Subject: [PATCH] Improve error handling on proxy (#911) Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Co-authored-by: Lenin Alevski --- operatorapi/proxy.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/operatorapi/proxy.go b/operatorapi/proxy.go index 77be2c94a..b567d1eed 100644 --- a/operatorapi/proxy.go +++ b/operatorapi/proxy.go @@ -21,6 +21,7 @@ import ( "crypto/sha1" "crypto/tls" "encoding/json" + "errors" "fmt" "io" "log" @@ -145,6 +146,12 @@ func serveProxy(responseWriter http.ResponseWriter, req *http.Request) { return } + if loginResp.StatusCode < 200 && loginResp.StatusCode <= 299 { + log.Println(fmt.Printf("Status: %d. Couldn't complete login", loginResp.StatusCode)) + responseWriter.WriteHeader(500) + return + } + for _, c := range loginResp.Cookies() { if c.Name == "token" { tenantCookie = c @@ -162,6 +169,11 @@ func serveProxy(responseWriter http.ResponseWriter, req *http.Request) { } defer loginResp.Body.Close() } + if tenantCookie == nil { + log.Println(errors.New("couldn't login to tenant and get cookie")) + responseWriter.WriteHeader(500) + return + } targetURL, err := url2.Parse(tenantURL) if err != nil {