diff --git a/apps/emqx_ldap/src/emqx_ldap.erl b/apps/emqx_ldap/src/emqx_ldap.erl index 628397ff3..82f749967 100644 --- a/apps/emqx_ldap/src/emqx_ldap.erl +++ b/apps/emqx_ldap/src/emqx_ldap.erl @@ -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}}