From 8d968ce29daab387a5d0d22bae312204201725d3 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Sun, 21 Apr 2019 19:11:39 +0200 Subject: [PATCH] Add default page in case neither redirect was specified Signed-off-by: Knut Ahlers --- main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/main.go b/main.go index 3159b01..63e6ca0 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "os" "os/signal" "path" + "strings" "syscall" "github.com/flosch/pongo2" @@ -76,6 +77,7 @@ func init() { mainCfg.Cookie.Expire = 3600 mainCfg.Listen.Addr = "127.0.0.1" mainCfg.Listen.Port = 8082 + mainCfg.Login.DefaultRedirect = "debug" mainCfg.AuditLog.TrustedIPHeaders = []string{"X-Forwarded-For", "RemoteAddr", "X-Real-IP"} mainCfg.AuditLog.Headers = []string{"x-origin-uri"} } @@ -117,6 +119,7 @@ func main() { http.HandleFunc("/", handleRootRequest) http.HandleFunc("/auth", handleAuthRequest) + http.HandleFunc("/debug", handleLoginDebug) http.HandleFunc("/login", handleLoginRequest) http.HandleFunc("/logout", handleLogoutRequest) @@ -271,3 +274,24 @@ func handleLogoutRequest(res http.ResponseWriter, r *http.Request) { http.Redirect(res, r, redirURL, http.StatusFound) } + +func handleLoginDebug(w http.ResponseWriter, r *http.Request) { + user, groups, err := detectUser(w, r) + switch err { + case nil: + // All fine + + case plugins.ErrNoValidUserFound: + http.Redirect(w, r, "login", http.StatusFound) + return + + default: + log.WithError(err).Error("Failed to get user for login debug") + http.Error(w, "Something went wrong", http.StatusInternalServerError) + } + + w.WriteHeader(http.StatusOK) + fmt.Fprintln(w, "Successfully logged in:") + fmt.Fprintf(w, "- Username: %s\n", user) + fmt.Fprintf(w, "- Groups: %s\n", strings.Join(groups, ",")) +}