From bc02aed6e890c27047c885d65ca61989c644488b Mon Sep 17 00:00:00 2001 From: Leandro Lafin Date: Thu, 11 Jul 2024 13:34:39 -0300 Subject: [PATCH] Log the difference between invalid email and not authorized session --- CHANGELOG.md | 1 + oauthproxy.go | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00f06199..d9432ae0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - [#1951](https://github.com/oauth2-proxy/oauth2-proxy/pull/1951) Fix validate URL, check if query string marker (?) or separator (&) needs to be appended (@miguelborges99) - [#1920](https://github.com/oauth2-proxy/oauth2-proxy/pull/1920) Make sure emailClaim is not overriden if userIDClaim is not set - [#2013](https://github.com/oauth2-proxy/oauth2-proxy/pull/2013) Upgrade alpine to version 3.17.2 and library dependencies (@miguelborges99) +- [#2010](https://github.com/oauth2-proxy/oauth2-proxy/pull/2010) Log the difference between invalid email and not authorized session - [#1988](https://github.com/oauth2-proxy/oauth2-proxy/pull/1988) Ensure sign-in page background is uniform throughout the page # V7.4.0 diff --git a/oauthproxy.go b/oauthproxy.go index 6a751bec..d2037024 100644 --- a/oauthproxy.go +++ b/oauthproxy.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/base64" "encoding/json" "errors" "fmt" @@ -367,14 +366,14 @@ func buildPreAuthChain(opts *options.Options, sessionStore sessionsapi.SessionSt if opts.Logging.SilencePing { chain = chain.Append( middleware.NewHealthCheck(healthCheckPaths, healthCheckUserAgents), - middleware.NewReadynessCheck(opts.ReadyPath, sessionStore), + middleware.NewReadynessCheck(opts.ReadyPath, sessionStore), middleware.NewRequestLogger(), ) } else { chain = chain.Append( middleware.NewRequestLogger(), middleware.NewHealthCheck(healthCheckPaths, healthCheckUserAgents), - middleware.NewReadynessCheck(opts.ReadyPath, sessionStore), + middleware.NewReadynessCheck(opts.ReadyPath, sessionStore), ) } @@ -769,9 +768,9 @@ func (p *OAuthProxy) doOAuthStart(rw http.ResponseWriter, req *http.Request, ove ) if p.provider.Data().CodeChallengeMethod != "" { codeChallengeMethod = p.provider.Data().CodeChallengeMethod - codeVerifier, err = encryption.GenerateRandomASCIIString(96) + codeVerifier, err = encryption.GenerateRandomASCIIString(96) if err != nil { - logger.Errorf("Unable to build random ASCII string for code verifier: %v", err) + logger.Errorf("Unable to build random ASCII string for code verifier: %v", err) p.ErrorPage(rw, req, http.StatusInternalServerError, err.Error()) return } @@ -1084,7 +1083,12 @@ func (p *OAuthProxy) getAuthenticatedSession(rw http.ResponseWriter, req *http.R } if invalidEmail || !authorized { - logger.PrintAuthf(session.Email, req, logger.AuthFailure, "Invalid authorization via session: removing session %s", session) + cause := "unauthorized" + if invalidEmail { + cause = "invalid email" + } + + logger.PrintAuthf(session.Email, req, logger.AuthFailure, "Invalid authorization via session (%s): removing session %s", cause, session) // Invalid session, clear it err := p.ClearSessionCookie(rw, req) if err != nil {