[Dovecot] Fix EAS login and improve logging

This commit is contained in:
FreddleSpl0it 2025-04-15 10:49:56 +02:00
parent 766c5e8580
commit c4d0f35008
No known key found for this signature in database
GPG Key ID: 00E14E7634F4BEC5
2 changed files with 10 additions and 3 deletions

View File

@ -80,7 +80,7 @@ if ($isSOGoRequest) {
}
if ($result === false){
// If it's a SOGo Request, don't check for protocol access
$service = (isSOGoRequest) ? false : array($post['service'] => true);
$service = ($isSOGoRequest) ? false : array($post['service'] => true);
$result = apppass_login($post['username'], $post['password'], $service, array(
'is_internal' => true,
'remote_addr' => $post['real_rip']

View File

@ -34,8 +34,15 @@ function auth_password_verify(request, password)
return dovecot.auth.PASSDB_RESULT_INTERNAL_FAILURE, "Upstream error"
end
local api_response = json.decode(table.concat(res))
if api_response.success == true then
local response_str = table.concat(res)
local is_response_valid, response_json = pcall(json.decode, response_str)
if not is_response_valid then
dovecot.i_info("Invalid JSON received: " .. response_str)
return dovecot.auth.PASSDB_RESULT_INTERNAL_FAILURE, "Invalid response format"
end
if response_json.success == true then
return dovecot.auth.PASSDB_RESULT_OK, ""
end