diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_redis.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_redis.erl index c6d2846ab..735cfe226 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_redis.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_redis.erl @@ -141,8 +141,8 @@ authenticate( {ok, []} -> ignore; {ok, Values} -> - case lists:all(fun(E) -> E =:= undefined end, Values) of - true -> + case check_query_matched(Values) of + false -> %% key not exists ignore; _ -> @@ -228,3 +228,10 @@ merge(Fields, Values) -> || {K, V} <- lists:zip(Fields, Values), V =/= undefined ] ). + +check_query_matched(undefined) -> + false; +check_query_matched(List) when is_list(List) -> + lists:any(fun(E) -> E =/= undefined end, List); +check_query_matched(_) -> + true.