diff --git a/apps/emqttd/src/emqttd_access_control.erl b/apps/emqttd/src/emqttd_access_control.erl index 3f1ca1b36..30efa0ad5 100644 --- a/apps/emqttd/src/emqttd_access_control.erl +++ b/apps/emqttd/src/emqttd_access_control.erl @@ -179,6 +179,7 @@ handle_call({register_mod, Type, Mod, Opts}, _From, State) -> ets:insert(?ACCESS_CONTROL_TAB, {tab_key(Type), [{Mod, ModState}|Mods]}), ok; {'EXIT', Error} -> + lager:error("Access Control: register ~s error - ~p", [Mod, Error]), {error, Error} end; _ -> diff --git a/plugins/emqttd_auth_mysql/etc/plugin.config b/plugins/emqttd_auth_mysql/etc/plugin.config index a5ef4bc41..367983f5f 100644 --- a/plugins/emqttd_auth_mysql/etc/plugin.config +++ b/plugins/emqttd_auth_mysql/etc/plugin.config @@ -9,8 +9,9 @@ ]}, {emqttd_auth_mysql, [ {users_table, mqtt_users}, + {password_hash, plain}, {field_mapper, [ {username, username}, - {password, password, plain} + {password, password} ]} ]} diff --git a/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql.erl b/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql.erl index cf2d32cbc..be8685103 100644 --- a/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql.erl +++ b/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql.erl @@ -38,15 +38,19 @@ init(Opts) -> Mapper = proplists:get_value(field_mapper, Opts), - {ok, #state{user_table = proplists:get_value(user_table, Opts, mqtt_users), + {ok, #state{user_table = proplists:get_value(user_table, Opts), name_field = proplists:get_value(username, Mapper), pass_field = proplists:get_value(password, Mapper), - pass_hash = proplists:get_value(Opts, password_hash)}}. + pass_hash = proplists:get_value(password_hash, Opts)}}. check(#mqtt_client{username = undefined}, _Password, _State) -> {error, "Username undefined"}; +check(#mqtt_client{username = <<>>}, _Password, _State) -> + {error, "Username undefined"}; check(_Client, undefined, _State) -> {error, "Password undefined"}; +check(_Client, <<>>, _State) -> + {error, "Password undefined"}; check(#mqtt_client{username = Username}, Password, #state{user_table = UserTab, pass_hash = Type, name_field = NameField, pass_field = PassField}) -> diff --git a/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql_app.erl b/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql_app.erl index 86881a4bb..11734fbad 100644 --- a/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql_app.erl +++ b/plugins/emqttd_auth_mysql/src/emqttd_auth_mysql_app.erl @@ -40,7 +40,7 @@ start(_StartType, _StartArgs) -> Env = application:get_all_env(), - emqttd_access_control:register_mod(auth, emqttd_auth_mysql, Env), + ok = emqttd_access_control:register_mod(auth, emqttd_auth_mysql, Env), supervisor:start_link({local, ?MODULE}, ?MODULE, []). prep_stop(State) -> diff --git a/rel/files/plugins.config b/rel/files/plugins.config index 57dcb8abf..c2fde4d51 100644 --- a/rel/files/plugins.config +++ b/rel/files/plugins.config @@ -9,7 +9,12 @@ % {encoding, utf8} % ]}, % {emqttd_auth_mysql, [ -% {user_table, mqtt_users} +% {users_table, mqtt_users}, +% {password_hash, plain}, +% {field_mapper, [ +% {username, username}, +% {password, password} +% ]} % ]} % % {emqttd_dashboard, [