diff --git a/oauthproxy.go b/oauthproxy.go index 4e733a8..c7d1c1d 100644 --- a/oauthproxy.go +++ b/oauthproxy.go @@ -647,7 +647,7 @@ func (p *OAuthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) { redirect, err := p.GetRedirect(req) if err != nil { - logger.Printf("Error obtaining redirect: %s", err.Error()) + logger.Printf("Error obtaining redirect: %v", err) p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error()) return } @@ -657,7 +657,7 @@ func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) { session := &sessionsapi.SessionState{User: user} err = p.SaveSession(rw, req, session) if err != nil { - logger.Printf("Error saving session: %s", err.Error()) + logger.Printf("Error saving session: %v", err) p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error()) return } diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index e0ce61d..53eec71 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -137,8 +137,15 @@ func (l *Logger) Output(calldepth int, message string) { File: file, Message: message, }) + // Fallback for template errors if err != nil { - panic(err) + _, ferr := fmt.Fprintf(l.writer, "[%s] [%s] %s", + FormatTimestamp(now), + file, + message) + if ferr != nil { + panic(ferr) + } } _, err = l.writer.Write([]byte("\n")) @@ -177,8 +184,17 @@ func (l *Logger) PrintAuthf(username string, req *http.Request, status AuthStatu Status: string(status), Message: fmt.Sprintf(format, a...), }) + // Fallback for template errors if err != nil { - panic(err) + _, ferr := fmt.Fprintf(l.writer, "%s - %s [%s] [%s] %s", + client, + username, + FormatTimestamp(now), + string(status), + fmt.Sprintf(format, a...)) + if ferr != nil { + panic(ferr) + } } _, err = l.writer.Write([]byte("\n")) @@ -234,8 +250,14 @@ func (l *Logger) PrintReq(username, upstream string, req *http.Request, url url. UserAgent: fmt.Sprintf("%q", req.UserAgent()), Username: username, }) + // Fallback for template errors if err != nil { - panic(err) + _, ferr := fmt.Fprintf(l.writer, "%s - %s [%s] %s %s %s %q %s %q %d %d %0.3f", + client, username, FormatTimestamp(ts), req.Host, req.Method, upstream, + url.RequestURI(), req.Proto, req.UserAgent(), status, size, duration) + if ferr != nil { + panic(ferr) + } } _, err = l.writer.Write([]byte("\n")) diff --git a/pkg/sessions/persistence/manager.go b/pkg/sessions/persistence/manager.go index a828183..4697ad2 100644 --- a/pkg/sessions/persistence/manager.go +++ b/pkg/sessions/persistence/manager.go @@ -49,12 +49,7 @@ func (m *Manager) Save(rw http.ResponseWriter, req *http.Request, s *sessions.Se return err } - err = tckt.setCookie(rw, req, s) - if err != nil { - return err - } - - return nil + return tckt.setCookie(rw, req, s) } // Load reads sessions.SessionState information from a session store. It will