oauth2-proxy/pkg
Kinfemichael Desse 70be1b2893 feat: make session refresh timeouts user configurable
Make the session refresh lock duration, obtain timeout, and retry period
configurable via command-line flags, config file, or environment variables.

Previously, these values were hardcoded constants:
- sessionRefreshLockDuration = 2s
- sessionRefreshObtainTimeout = 5s
- sessionRefreshRetryPeriod = 10ms

This change removes the hardcoded constants and adds three new configuration
options to the Cookie configuration:
- `--session-refresh-lock-duration` (default: 2s)
- `--session-refresh-obtain-timeout` (default: 5s)
- `--session-refresh-retry-period` (default: 10ms)

The new options allow users to tune session refresh behavior for their
specific deployment requirements, such as:
- High-latency networks requiring longer timeouts
- High-throughput systems needing faster retry intervals
- Provider-specific refresh operation durations

Changes:
- Added SessionRefreshLockDuration, SessionRefreshObtainTimeout, and
  SessionRefreshRetryPeriod fields to Cookie struct
- Updated StoredSessionLoaderOptions to accept these as parameters
- Modified storedSessionLoader to use configurable values instead of constants
- Updated all tests to provide default values
- Maintains full backward compatibility with original default values

Resolves TODO comments in pkg/middleware/stored_session.go

Signed-off-by: Kinfemichael Desse <kinfemichael.desse@real-digital.de>
2026-02-11 15:10:13 +01:00
..
apis feat: make session refresh timeouts user configurable 2026-02-11 15:10:13 +01:00
app chore(lint): fix staticcheck issues (#3061) 2025-05-26 12:29:34 +02:00
authentication fix: hmacauth dependency licensing issue (#3253) 2025-11-09 20:14:54 +01:00
cookies test: replace mock pkg/clock with narrowly targeted stub clocks. (#3238) 2025-10-28 10:05:02 +01:00
encryption fix alpha config 2025-11-16 22:38:40 +01:00
header revert: secrets as []byte instead of string 2025-11-16 22:38:42 +01:00
ip feat: add CF-Connecting-IP as supported real ip header (#2821) 2024-11-04 23:28:08 +01:00
logger Request ID Logging (#1087) 2021-03-21 18:20:57 +00:00
middleware feat: make session refresh timeouts user configurable 2026-02-11 15:10:13 +01:00
providers fix: NewRemoteKeySet is not using DefaultHTTPClient (#3197) 2025-11-11 21:08:08 +01:00
proxyhttp chore(deps): update dependency golangci/golangci-lint to v2.7.2 (#3254) 2026-01-04 10:23:26 +01:00
requests use official upstream yaml library v3 2025-11-16 22:38:22 +01:00
sessions fix: use GetSecret() in ticket.go makeCookie to respect cookie-secret-file (#3228) 2025-10-28 08:37:25 +01:00
upstream docs: add todo for revamping the usage / naming of PassHostHeader 2026-01-17 11:06:24 +01:00
util refactor: ptr.Ptr to ptr.To 2025-11-16 22:38:59 +01:00
validation ci: fix linter warnings for preallocation 2026-01-17 16:01:14 +01:00
version feat: Replace default Go user-agent with oauth2-proxy and version (#2570) 2024-07-14 21:09:17 +01:00
watcher Fix Linting Errors (#1835) 2022-10-21 11:57:51 +01:00