Return correct loginname in credentials,

even when token is invalid or has no password.

Returning the uid as loginname is wrong, and leads to problems when
these differ. E.g. the getapppassword API was creating app token with
the uid as loginname. In a scenario with external authentication (such
as LDAP), these tokens were then invalidated next time their underlying
password was checked, and systematically ceased to function.

Signed-off-by: Lionel Elie Mamane <lionel@mamane.lu>
This commit is contained in:
Lionel Elie Mamane 2020-06-07 14:15:10 +02:00 committed by backportbot[bot]
parent b19525ebbc
commit 2f75ba1adb
1 changed files with 1 additions and 1 deletions

View File

@ -112,7 +112,7 @@ class Store implements IStore {
if ($trySession && $this->session->exists('login_credentials')) { if ($trySession && $this->session->exists('login_credentials')) {
$creds = json_decode($this->session->get('login_credentials')); $creds = json_decode($this->session->get('login_credentials'));
return new Credentials($creds->uid, $creds->uid, $creds->password); return new Credentials($creds->uid, $this->session->get('loginname'), $creds->password);
} }
// If we reach this line, an exception was thrown. // If we reach this line, an exception was thrown.