From f10bb80f9ecdaeaea3af2f053adfaa965a3a21c6 Mon Sep 17 00:00:00 2001 From: Trong Huu Nguyen Date: Thu, 5 May 2022 09:15:59 +0200 Subject: [PATCH] refactor(handler): use logger with request context --- pkg/router/handler_callback.go | 10 ++++++---- pkg/router/handler_login.go | 10 ++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pkg/router/handler_callback.go b/pkg/router/handler_callback.go index dbee764..a82f49a 100644 --- a/pkg/router/handler_callback.go +++ b/pkg/router/handler_callback.go @@ -12,6 +12,7 @@ import ( "github.com/nais/wonderwall/pkg/jwt" "github.com/nais/wonderwall/pkg/openid" + logentry "github.com/nais/wonderwall/pkg/router/middleware" ) func (h *Handler) Callback(w http.ResponseWriter, r *http.Request) { @@ -86,7 +87,7 @@ func (h *Handler) Callback(w http.ResponseWriter, r *http.Request) { log.Info("callback: successfully fetched loginstatus token") } - logSuccessfulLogin(tokens, loginCookie.Referer) + logSuccessfulLogin(r, tokens, loginCookie.Referer) http.Redirect(w, r, loginCookie.Referer, http.StatusTemporaryRedirect) } @@ -110,11 +111,12 @@ func (h *Handler) codeExchangeForToken(ctx context.Context, loginCookie *openid. return tokens, nil } -func logSuccessfulLogin(tokens *jwt.Tokens, referer string) { - fields := log.Fields{ +func logSuccessfulLogin(r *http.Request, tokens *jwt.Tokens, referer string) { + fields := map[string]interface{}{ "redirect_to": referer, "claims": tokens.Claims(), } - log.WithFields(fields).Info("callback: successful login") + logger := logentry.LogEntry(r.Context()).With().Fields(fields).Logger() + logger.Info().Msg("callback: successful login") } diff --git a/pkg/router/handler_login.go b/pkg/router/handler_login.go index c7bc788..157392e 100644 --- a/pkg/router/handler_login.go +++ b/pkg/router/handler_login.go @@ -49,14 +49,20 @@ func (h *Handler) Login(w http.ResponseWriter, r *http.Request) { return } + fields := map[string]interface{}{ + "redirect_to": redirect, + } + logger := logentry.LogEntry(r.Context()).With().Fields(fields).Logger() + logger.Info().Msg("login: redirecting to identity provider") + http.Redirect(w, r, loginURL, http.StatusTemporaryRedirect) } func (h *Handler) getLoginCookie(r *http.Request) (*openid.LoginCookie, error) { loginCookieJson, err := h.getDecryptedCookie(r, LoginCookieName) if err != nil { - log := logentry.LogEntry(r.Context()) - log.Info().Msgf("failed to fetch login cookie: %+v; falling back to legacy cookie", err) + logger := logentry.LogEntry(r.Context()) + logger.Info().Msgf("failed to fetch login cookie: %+v; falling back to legacy cookie", err) loginCookieJson, err = h.getDecryptedCookie(r, LoginLegacyCookieName) if err != nil {