oauth2-proxy/pkg/apis/options
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
..
testutil chore(deps): Updated to ginkgo v2 (#2459) 2024-07-18 22:41:02 +02:00
util revert: secrets as []byte instead of string 2025-11-16 22:38:42 +01:00
alpha_options.go feat: add ensure defaults to all migrated structs 2025-11-16 22:38:52 +01:00
app.go Allow specifying URL as input for custom sign in logo (#1330) 2021-09-05 09:23:22 -07:00
cookie.go feat: make session refresh timeouts user configurable 2026-02-11 15:10:13 +01:00
cookie_test.go feat(cookie): add feature support for cookie-secret-file (#3104) 2025-07-22 18:59:55 +02:00
doc.go fix alpha config 2025-11-16 22:38:40 +01:00
header.go feat: migrate google used organization id and header normalization booleans to pointers 2025-11-16 22:39:01 +01:00
hooks.go fix merge problems and test cases 2025-11-16 22:38:44 +01:00
hooks_test.go fix merge problems and test cases 2025-11-16 22:38:44 +01:00
legacy_options.go fix: static upstreams failing validation due to `passHostHeader` and `proxyWebSockets` defaults being set incorrectly (#3302) 2026-01-17 15:15:19 +01:00
legacy_options_test.go fix: static upstreams failing validation due to `passHostHeader` and `proxyWebSockets` defaults being set incorrectly (#3302) 2026-01-17 15:15:19 +01:00
load.go doc: fix mapstructure configuration comments 2025-11-28 17:20:15 +01:00
load_test.go fix merge problems and test cases 2025-11-16 22:38:44 +01:00
logging.go feat: readiness check (#1839) 2022-12-23 09:08:12 +00:00
login_url_parameters.go use official upstream yaml library v3 2025-11-16 22:38:22 +01:00
options.go feat: add ensure defaults to all migrated structs 2025-11-16 22:38:52 +01:00
options_suite_test.go chore(deps): Updated to ginkgo v2 (#2459) 2024-07-18 22:41:02 +02:00
providers.go fix: added conditional so default is not always set and env vars are honored #3303 (#3304) 2026-01-14 22:18:52 +01:00
secret_source.go feat: add ensure defaults to all migrated structs 2025-11-16 22:38:52 +01:00
server.go use official upstream yaml library v3 2025-11-16 22:38:22 +01:00
sessions.go Add ability to configure username for Redis cluster connections (#2381) 2024-01-20 20:00:02 +00:00
upstreams.go fix: static upstreams failing validation due to `passHostHeader` and `proxyWebSockets` defaults being set incorrectly (#3302) 2026-01-17 15:15:19 +01:00