Back the SSO OAuth state with the shared cache #3

Merged
benvin merged 4 commits from benvin/valkey-oauth-state into main 2026-09-19 23:38:48 +10:00

4 Commits

Author SHA1 Message Date
unkin-agent e9bc573e7d snapshot the state store atomically before evicting
ci/woodpecker/pr/ci Pipeline was successful
LINQ buffering of a ConcurrentDictionary is not atomic, so a concurrent write made Evict() throw and fail the login.
2026-09-19 23:23:26 +10:00
unkin-agent e71df7aa36 bound the in-memory state store and guard store failures
ci/woodpecker/pr/ci Pipeline was successful
Drop a rejected state instead of refreshing its TTL, and turn a store
outage into the plugin's error page rather than an unhandled 500.
2026-09-19 23:05:16 +10:00
unkin-agent 5d446c16f2 keep solution file line endings
ci/woodpecker/pr/ci Pipeline was successful
2026-09-19 22:49:18 +10:00
unkin-agent a167d00b73 store OAuth state in the shared cache
ci/woodpecker/pr/ci Pipeline was successful
Keys each in-flight OpenID flow in the server's Valkey/Redis connection so a login
can start on one replica and finish on another. Falls back to an in-memory store
when no multiplexer is registered.
2026-09-19 22:47:43 +10:00