case prepare(ClientIn) of
[AuthzId, User, Token] ->
case ejabberd_oauth:check_token(
- User, State#state.host, <<"sasl_auth">>, Token) of
+ User, State#state.host, [<<"sasl_auth">>], Token) of
true ->
{ok,
[{username, User}, {authzid, AuthzId},
[<<"">>, UserMaybeDomain, Token] ->
case parse_domain(UserMaybeDomain) of
%% <NUL>login@domain<NUL>pwd
- [User, _Domain] -> [UserMaybeDomain, User, Token];
+ [User, _Domain] -> [User, User, Token];
%% <NUL>login<NUL>pwd
- [User] -> [<<"">>, User, Token]
+ [User] -> [User, User, Token]
end;
%% login@domain<NUL>login<NUL>pwd
- [AuthzId, User, Token] -> [AuthzId, User, Token];
+ [AuthzId, User, Token] ->
+ case parse_domain(AuthzId) of
+ %% login@domain<NUL>login<NUL>pwd
+ [AuthzUser, _Domain] -> [AuthzUser, User, Token];
+ %% login<NUL>login<NUL>pwd
+ [AuthzUser] -> [AuthzUser, User, Token]
+ end;
_ -> error
end.