Merge pull request #22992 from nextcloud/password-urlencode
allow authenticating using urlencoded passwords
This commit is contained in:
commit
aeb32e1bc8
|
@ -5160,7 +5160,8 @@
|
|||
<code>$this->createUserFromBackend($uid, $password, $backend)</code>
|
||||
<code>$this->createUserFromBackend($uid, $password, $backend)</code>
|
||||
</NullableReturnStatement>
|
||||
<UndefinedInterfaceMethod occurrences="4">
|
||||
<UndefinedInterfaceMethod occurrences="5">
|
||||
<code>checkPassword</code>
|
||||
<code>checkPassword</code>
|
||||
<code>countUsers</code>
|
||||
<code>createUser</code>
|
||||
|
|
|
@ -231,6 +231,20 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
}
|
||||
}
|
||||
|
||||
// since http basic auth doesn't provide a standard way of handling non ascii password we allow password to be urlencoded
|
||||
// we only do this decoding after using the plain password fails to maintain compatibility with any password that happens
|
||||
// to contains urlencoded patterns by "accident".
|
||||
$password = urldecode($password);
|
||||
|
||||
foreach ($this->backends as $backend) {
|
||||
if ($backend->implementsActions(Backend::CHECK_PASSWORD)) {
|
||||
$uid = $backend->checkPassword($loginName, $password);
|
||||
if ($uid !== false) {
|
||||
return $this->getUserObject($uid, $backend);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue