fix(ldap): no crash when no query result is empty list

This commit is contained in:
Zaiming (Stone) Shi 2023-09-29 08:54:41 +02:00
parent b59a7ff2dd
commit 02ef854f0f
1 changed files with 7 additions and 5 deletions

View File

@ -262,10 +262,12 @@ do_ldap_query(
ldap_connector_query_return,
#{result => Result}
),
case Result#eldap_search_result.entries of
[_] = Entry ->
{ok, Entry};
[_ | _] = L ->
Entries = Result#eldap_search_result.entries,
Count = length(Entries),
case Count =< 1 of
true ->
{ok, Entries};
false ->
%% Accept only a single exact match.
%% Multiple matches likely indicate:
%% 1. A misconfiguration in EMQX, allowing overly broad query conditions.
@ -276,7 +278,7 @@ do_ldap_query(
error,
LogMeta#{
msg => "ldap_query_found_more_than_one_match",
count => length(L)
count => length(Entries)
}
),
{error, {unrecoverable_error, Msg}}