git.iko.soy/typeable/oauth2-proxy
on master help sign in
Attempt to log still on template errors
4522239Nick Meves
oauthproxy.go+2−2
@@ -647,7 +647,7 @@ func (p *OAuthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
647func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) {
647func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) {
648 redirect, err := p.GetRedirect(req)
648 redirect, err := p.GetRedirect(req)
649 if err != nil {
649 if err != nil {
650− logger.Printf("Error obtaining redirect: %s", err.Error())
650+ logger.Printf("Error obtaining redirect: %v", err)
651 p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error())
651 p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error())
652 return
652 return
653 }
653 }
@@ -657,7 +657,7 @@ func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) {
657 session := &sessionsapi.SessionState{User: user}
657 session := &sessionsapi.SessionState{User: user}
658 err = p.SaveSession(rw, req, session)
658 err = p.SaveSession(rw, req, session)
659 if err != nil {
659 if err != nil {
660− logger.Printf("Error saving session: %s", err.Error())
660+ logger.Printf("Error saving session: %v", err)
661 p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error())
661 p.ErrorPage(rw, http.StatusInternalServerError, "Internal Server Error", err.Error())
662 return
662 return
663 }
663 }
pkg/logger/logger.go+25−3
@@ -137,8 +137,15 @@ func (l *Logger) Output(calldepth int, message string) {
137 File: file,
137 File: file,
138 Message: message,
138 Message: message,
139 })
139 })
140+ // Fallback for template errors
140 if err != nil {
141 if err != nil {
142+ _, ferr := fmt.Fprintf(l.writer, "[%s] [%s] %s",
143+ FormatTimestamp(now),
144+ file,
145+ message)
146+ if ferr != nil {
141− panic(err)
147+ panic(ferr)
148+ }
142 }
149 }
143
150
144 _, err = l.writer.Write([]byte("\n"))
151 _, err = l.writer.Write([]byte("\n"))
@@ -177,8 +184,17 @@ func (l *Logger) PrintAuthf(username string, req *http.Request, status AuthStatu
177 Status: string(status),
184 Status: string(status),
178 Message: fmt.Sprintf(format, a...),
185 Message: fmt.Sprintf(format, a...),
179 })
186 })
187+ // Fallback for template errors
180 if err != nil {
188 if err != nil {
189+ _, ferr := fmt.Fprintf(l.writer, "%s - %s [%s] [%s] %s",
190+ client,
191+ username,
192+ FormatTimestamp(now),
193+ string(status),
194+ fmt.Sprintf(format, a...))
195+ if ferr != nil {
181− panic(err)
196+ panic(ferr)
197+ }
182 }
198 }
183
199
184 _, err = l.writer.Write([]byte("\n"))
200 _, err = l.writer.Write([]byte("\n"))
@@ -234,8 +250,14 @@ func (l *Logger) PrintReq(username, upstream string, req *http.Request, url url.
234 UserAgent: fmt.Sprintf("%q", req.UserAgent()),
250 UserAgent: fmt.Sprintf("%q", req.UserAgent()),
235 Username: username,
251 Username: username,
236 })
252 })
253+ // Fallback for template errors
237 if err != nil {
254 if err != nil {
255+ _, ferr := fmt.Fprintf(l.writer, "%s - %s [%s] %s %s %s %q %s %q %d %d %0.3f",
256+ client, username, FormatTimestamp(ts), req.Host, req.Method, upstream,
257+ url.RequestURI(), req.Proto, req.UserAgent(), status, size, duration)
258+ if ferr != nil {
238− panic(err)
259+ panic(ferr)
260+ }
239 }
261 }
240
262
241 _, err = l.writer.Write([]byte("\n"))
263 _, err = l.writer.Write([]byte("\n"))
pkg/sessions/persistence/manager.go+1−6
@@ -49,12 +49,7 @@ func (m *Manager) Save(rw http.ResponseWriter, req *http.Request, s *sessions.Se
49 return err
49 return err
50 }
50 }
51
51
52− err = tckt.setCookie(rw, req, s)
52+ return tckt.setCookie(rw, req, s)
53− if err != nil {
54− return err
55− }
56−
57− return nil
58}
53}
59
54
60// Load reads sessions.SessionState information from a session store. It will
55// Load reads sessions.SessionState information from a session store. It will