]> granicus.if.org Git - ejabberd/commitdiff
Update cyrsasl_oauth to internal API changes
authorAlexey Shchepin <alexey@process-one.net>
Tue, 14 Mar 2017 14:25:09 +0000 (17:25 +0300)
committerAlexey Shchepin <alexey@process-one.net>
Tue, 14 Mar 2017 14:25:09 +0000 (17:25 +0300)
src/cyrsasl_oauth.erl

index 1290b282299073f3e1ddf2774233074caa5acca8..27b5d92eee1c701f8ee0b568a36455c59c1a5c46 100644 (file)
@@ -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.