Merge pull request #7634 from mailcow/fix/7503

[Web] Keycloak: accept Base64-encoded mailcow_password
This commit is contained in:
FreddleSpl0it authored and GitHub committed 2026-11-09 23:30:20 +01:00
commit 867b9dddab
1 file changed
+7
+7
View File
@@ -601,6 +601,13 @@ function keycloak_mbox_login_rest($user, $pass, $extra = null){
// validate mailcow_password
$mailcow_password = $user_res['attributes']['mailcow_password'][0];
// Keycloak returns binary LDAP attributes like userPassword Base64 encoded
if (substr($mailcow_password, 0, 1) != '{') {
$decoded_password = base64_decode($mailcow_password, true);
if ($decoded_password !== false && substr($decoded_password, 0, 1) == '{') {
$mailcow_password = $decoded_password;
}
}
if (!verify_hash($mailcow_password, $pass)) {
return false;
}