Skip to content

Commit c27831c

Browse files
committed
Fix regression in autofill username (introduced in v2.2.2)
1 parent 86a15e4 commit c27831c

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

modules/core/src/Controller/Login.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private function handleLogin(Request $request, UserPassBase|UserPassOrgBase $sou
241241
$t = new Template($this->config, 'core:loginuserpass.twig');
242242

243243
if ($source instanceof UserPassOrgBase) {
244-
$t->data['username'] = $username;
244+
$t->data['username'] = $state['core:username'];
245245
$t->data['forceUsername'] = false;
246246
$t->data['rememberUsernameEnabled'] = $source->getRememberUsernameEnabled();
247247
$t->data['rememberUsernameChecked'] = $source->getRememberUsernameChecked();
@@ -255,7 +255,7 @@ private function handleLogin(Request $request, UserPassBase|UserPassOrgBase $sou
255255
$t->data['rememberMeEnabled'] = $source->isRememberMeEnabled();
256256
$t->data['rememberMeChecked'] = $source->isRememberMeChecked();
257257
} else {
258-
$t->data['username'] = $username;
258+
$t->data['username'] = $state['core:username'];
259259
$t->data['forceUsername'] = false;
260260
$t->data['rememberUsernameEnabled'] = $source->getRememberUsernameEnabled();
261261
$t->data['rememberUsernameChecked'] = $source->getRememberUsernameChecked();
@@ -380,8 +380,6 @@ private function getUsernameFromRequest(Request $request, Auth\Source $source, a
380380
&& $request->cookies->has($source->getAuthId() . '-username')
381381
) {
382382
$username = $request->cookies->get($source->getAuthId() . '-username');
383-
} elseif (isset($state['core:username'])) {
384-
$username = strval($state['core:username']);
385383
}
386384

387385
return $username;

modules/saml/src/IdP/SAML2.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ public static function receiveAuthnRequest(Request $request, IdP $idp): Response
345345
}
346346

347347
$authnRequestSigned = false;
348+
$username = null;
348349

349350
if ($request->query->has('spentityid') || $request->query->has('providerId')) {
350351
/* IdP initiated authentication. */
@@ -418,6 +419,10 @@ public static function receiveAuthnRequest(Request $request, IdP $idp): Response
418419
);
419420
}
420421

422+
if (isset($_REQUEST['username'])) {
423+
$username = (string) $_REQUEST['username'];
424+
}
425+
421426
$issuer = $authnRequest->getIssuer();
422427
if ($issuer === null) {
423428
throw new Error\BadRequest(
@@ -545,6 +550,10 @@ public static function receiveAuthnRequest(Request $request, IdP $idp): Response
545550
'saml:RequestedAuthnContext' => $authnContext,
546551
];
547552

553+
if ($username !== null) {
554+
$state['core:username'] = $username,
555+
}
556+
548557
return $idp->handleAuthenticationRequest($state);
549558
}
550559

0 commit comments

Comments
 (0)