Repository navigation
v2.1.0-rc.3
Pre-release
Pre-release
[2.1.0-rc.3] - 2026-09-17
Added
- A login attempt against a username/password source can now be checked
against an external webservice before the credentials are validated, via
the newaccessControlauthsource option (url,apiKey,verifySsl,
connectTimeout,timeout). Disabled unless aurlis configured. When
the webservice responds HTTP 429 ("too many requests"), the attempt is not
tried against the authentication source; the login page shows a generic
wait message with a per-username, per-session exponential backoff (2s, 4s,
8s, ... capped at 300s) instead. Any other failure talking to the
webservice fails open. This runs on every attempt regardless of outcome,
so it also covers users stuck in a wrong-password loop, unlike the
post-hocaccessLogreporting. See the new
\SimpleSAML\Module\multiauthsinglepage\AccessCheckerand
\SimpleSAML\Module\multiauthsinglepage\AccessBackoff, and the README. SinglepageControllergained protectedmakeAccessChecker()/
makeAccessBackoff()factory methods, overridable in tests the same way
setAuthState()already is.- Both
AccessCheckerandAccessLoggernow also sendforwarded(the
X-Forwarded-Forheader, if any) andpodName/nodeName(the
POD_NAME/NODE_NAMEenvironment variables, if set) to the webservice,
to help identify the originating client and serving instance in a
clustered deployment.
Changed
SinglepageController::checkAccessOrGetWaitSeconds()now skips the
access-control check (and the backoff-reset session write) entirely when
noaccessControl.urlis configured, instead of calling the webservice
gate and resetting the backoff counter on every login attempt regardless.