diff --git a/apps/roster/src/protocol/micro_auth.erl b/apps/roster/src/protocol/micro_auth.erl index 27913776ae15b0d6fc95424aa940305d3829e215..766a3b56cdb956eb22439dc145612526893b0c68 100644 --- a/apps/roster/src/protocol/micro_auth.erl +++ b/apps/roster/src/protocol/micro_auth.erl @@ -22,13 +22,16 @@ check(#mqtt_client{client_id = <<"sys_micro_", _/binary>> = ClientId, client_pid ignore; check(#mqtt_client{client_id = <<"emqttd_", _/binary>> = ClientId, username = <<"micro">>, - ws_initial_headers = [_|_] = Headers} = MC, _Pwd, State) -> + ws_initial_headers = [_|_] = Headers} = MC, Pwd, State) when not is_tuple(Pwd) -> roster:info(?MODULE, "~p:Auth:auth(micro)/check/ws headers: ~p", [ClientId, Headers]), - check(MC, list_to_binary(proplists:get_value("x-json-web-token", normalize(Headers), ?EMPTY_TOKEN)), State); + check(MC, {token, list_to_binary(proplists:get_value("x-json-web-token", normalize(Headers), ?EMPTY_TOKEN))}, State); +check(#mqtt_client{client_id = <<"emqttd_", _/binary>> = ClientId, + username = <<"micro">>} = MC, Pwd, State) when not is_tuple(Pwd) -> +check(MC, {token, Pwd}, State); check(#mqtt_client{client_id = <<"emqttd_", _/binary>> = ClientId, username = <<"micro">>, client_pid = ClientPid, - will_topic = WT}, Token, _State) -> + will_topic = WT}, {token, Token}, _State) -> roster:info(?MODULE, "~p:Auth:auth(micro)/check", [ClientId]), case WT of <<"version/", BVer/binary>> ->