25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-26 17:38:45 +01:00

Fix handling of xmlrpc request without authentication structure

This is problem from issue #1602
This commit is contained in:
Paweł Chmielowski 2017-03-13 16:41:52 +01:00
parent 113ed66f49
commit 301b1b7a7a

View File

@ -274,7 +274,7 @@ extract_auth(AuthList) ->
{error, not_found}
end
catch
exit:{attribute_not_found, _Attr, _} ->
exit:{attribute_not_found, _, _} ->
try get_attrs([user, server, password], AuthList) of
[U0, S0, P] ->
U = jid:nodeprep(U0),
@ -286,8 +286,8 @@ extract_auth(AuthList) ->
{error, invalid_auth}
end
catch
exit:{attribute_not_found, _Attr, _} ->
#{}
exit:{attribute_not_found, Attr, _} ->
throw({error, missing_auth_arguments, Attr})
end
end.
@ -340,7 +340,8 @@ handler(#state{get_auth = true, auth = noauth, ip = IP} = State,
{call, Method, Arguments})
catch
{error, missing_auth_arguments, _Attr} ->
handler(State#state{get_auth = false, auth = noauth},
handler(State#state{get_auth = false,
auth = #{ip => IP, caller_module => ?MODULE}},
{call, Method, AllArgs})
end;
%% .............................