diff options
author | Alexey Shchepin <alexey@process-one.net> | 2017-03-14 17:25:09 +0300 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2017-03-14 17:25:09 +0300 |
commit | 9a142eb8075d98b4741222bbb76f897b22795acf (patch) | |
tree | edd1b027c61a4136f22b6eb50bb2cb4a51334a22 /src | |
parent | Get rid of p1_sha calls (diff) |
Update cyrsasl_oauth to internal API changes
Diffstat (limited to 'src')
-rw-r--r-- | src/cyrsasl_oauth.erl | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cyrsasl_oauth.erl b/src/cyrsasl_oauth.erl index 1290b282..27b5d92e 100644 --- a/src/cyrsasl_oauth.erl +++ b/src/cyrsasl_oauth.erl @@ -53,7 +53,7 @@ mech_step(State, ClientIn) -> 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}, @@ -69,12 +69,18 @@ prepare(ClientIn) -> [<<"">>, 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. |