From f4b33b64bd66ad28e9b0d63bea51837b83c00ca1 Mon Sep 17 00:00:00 2001 From: nobletrout Date: Thu, 24 Jul 2025 02:33:06 -0400 Subject: [PATCH] feat: differentiate between "no available key" and error for redis sessions (#3093) * add some better error handling * add changelog entry Signed-off-by: Jan Larwig --------- Signed-off-by: Jan Larwig Co-authored-by: Jan Larwig --- CHANGELOG.md | 2 ++ pkg/sessions/redis/redis_store.go | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c117129..ed30ea57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ - [#3104](https://github.com/oauth2-proxy/oauth2-proxy/pull/3104) feat(cookie): add feature support for cookie-secret-file (@sandy2008) - [#3055](https://github.com/oauth2-proxy/oauth2-proxy/pull/3055) feat: support non-default authorization request response mode also for OIDC providers (@stieler-it) - [#3138](https://github.com/oauth2-proxy/oauth2-proxy/pull/3138) feat: make google_groups argument optional when using google provider (@sourava01) +- [#3093](https://github.com/oauth2-proxy/oauth2-proxy/pull/3093) feat: differentiate between "no available key" and error for redis sessions (@nobletrout) + # V7.10.0 diff --git a/pkg/sessions/redis/redis_store.go b/pkg/sessions/redis/redis_store.go index 18d79b80..4e846e9b 100644 --- a/pkg/sessions/redis/redis_store.go +++ b/pkg/sessions/redis/redis_store.go @@ -49,9 +49,12 @@ func (store *SessionStore) Save(ctx context.Context, key string, value []byte, e // cookie within the HTTP request object func (store *SessionStore) Load(ctx context.Context, key string) ([]byte, error) { value, err := store.Client.Get(ctx, key) - if err != nil { + if err == redis.Nil { + return nil, fmt.Errorf("session does not exist") + } else if err != nil { return nil, fmt.Errorf("error loading redis session: %v", err) } + return value, nil }