From f92ff4494bf11994eb1536c2fd91b746760e63ee Mon Sep 17 00:00:00 2001 From: zhanghongtong Date: Tue, 7 Sep 2021 17:34:27 +0800 Subject: [PATCH] fix(auth mnesia api): parsing the http body parameter does not require url decode --- apps/emqx_auth_mnesia/src/emqx_acl_mnesia_api.erl | 10 +++++----- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src | 2 +- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src | 8 ++++++++ apps/emqx_auth_mnesia/src/emqx_auth_mnesia_api.erl | 8 ++++---- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/apps/emqx_auth_mnesia/src/emqx_acl_mnesia_api.erl b/apps/emqx_auth_mnesia/src/emqx_acl_mnesia_api.erl index 63e8fedd1..fbd044d3f 100644 --- a/apps/emqx_auth_mnesia/src/emqx_acl_mnesia_api.erl +++ b/apps/emqx_auth_mnesia/src/emqx_acl_mnesia_api.erl @@ -144,12 +144,12 @@ do_add(Params) -> Username = get_value(<<"username">>, Params, undefined), Login = case {Clientid, Username} of {undefined, undefined} -> all; - {_, undefined} -> {clientid, urldecode(Clientid)}; - {undefined, _} -> {username, urldecode(Username)} + {_, undefined} -> {clientid, Clientid}; + {undefined, _} -> {username, Username} end, - Topic = urldecode(get_value(<<"topic">>, Params)), - Action = urldecode(get_value(<<"action">>, Params)), - Access = urldecode(get_value(<<"access">>, Params)), + Topic = get_value(<<"topic">>, Params), + Action = get_value(<<"action">>, Params), + Access = get_value(<<"access">>, Params), Re = case validate([login, topic, action, access], [Login, Topic, Action, Access]) of ok -> emqx_acl_mnesia_cli:add_acl(Login, Topic, erlang:binary_to_atom(Action, utf8), erlang:binary_to_atom(Access, utf8)); diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src index 5531aa23d..e61a22f0a 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_mnesia, [{description, "EMQ X Authentication with Mnesia"}, - {vsn, "4.3.2"}, % strict semver, bump manually + {vsn, "4.3.3"}, % strict semver, bump manually {modules, []}, {registered, []}, {applications, [kernel,stdlib,mnesia]}, diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src index b07e3efdd..d5cb8b49f 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src @@ -2,6 +2,10 @@ {VSN, [ + {"4.3.2", [ + {load_module,emqx_acl_mnesia_api, brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]} + ]}, {"4.3.1", [ {load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]} ]}, @@ -11,6 +15,10 @@ {<<".*">>, []} ], [ + {"4.3.2", [ + {load_module,emqx_acl_mnesia_api, brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]} + ]}, {"4.3.1", [ {load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]} ]}, diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_api.erl b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_api.erl index a1253eca6..9d9fff6f6 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_api.erl +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_api.erl @@ -133,14 +133,14 @@ add_clientid(_Bindings, Params) -> end. do_add_clientid([ Params | ParamsN ], ReList ) -> - Clientid = urldecode(get_value(<<"clientid">>, Params)), + Clientid = get_value(<<"clientid">>, Params), do_add_clientid(ParamsN, [{Clientid, format_msg(do_add_clientid(Params))} | ReList]); do_add_clientid([], ReList) -> {ok, ReList}. do_add_clientid(Params) -> - Clientid = urldecode(get_value(<<"clientid">>, Params)), + Clientid = get_value(<<"clientid">>, Params), Password = get_value(<<"password">>, Params), Login = {clientid, Clientid}, case validate([login, password], [Login, Password]) of @@ -182,14 +182,14 @@ add_username(_Bindings, Params) -> end. do_add_username([ Params | ParamsN ], ReList ) -> - Username = urldecode(get_value(<<"username">>, Params)), + Username = get_value(<<"username">>, Params), do_add_username(ParamsN, [{Username, format_msg(do_add_username(Params))} | ReList]); do_add_username([], ReList) -> {ok, ReList}. do_add_username(Params) -> - Username = urldecode(get_value(<<"username">>, Params)), + Username = get_value(<<"username">>, Params), Password = get_value(<<"password">>, Params), Login = {username, Username}, case validate([login, password], [Login, Password]) of