fix issue#428 - Username/Password Authentication: support to configure default users
This commit is contained in:
parent
1cbdc5e9e4
commit
a983361121
|
@ -71,6 +71,9 @@ add_user(Username, Password) ->
|
||||||
User = #?AUTH_USERNAME_TAB{username = Username, password = hash(Password)},
|
User = #?AUTH_USERNAME_TAB{username = Username, password = hash(Password)},
|
||||||
mnesia:transaction(fun mnesia:write/1, [User]).
|
mnesia:transaction(fun mnesia:write/1, [User]).
|
||||||
|
|
||||||
|
add_default_user(Username, Password) ->
|
||||||
|
add_user(bin(Username), bin(Password)).
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% @doc Lookup user by username
|
%% @doc Lookup user by username
|
||||||
%% @end
|
%% @end
|
||||||
|
@ -98,13 +101,16 @@ all_users() ->
|
||||||
%%%=============================================================================
|
%%%=============================================================================
|
||||||
%%% emqttd_auth callbacks
|
%%% emqttd_auth callbacks
|
||||||
%%%=============================================================================
|
%%%=============================================================================
|
||||||
init(Opts) ->
|
init(DefautUsers) ->
|
||||||
mnesia:create_table(?AUTH_USERNAME_TAB, [
|
mnesia:create_table(?AUTH_USERNAME_TAB, [
|
||||||
{disc_copies, [node()]},
|
{disc_copies, [node()]},
|
||||||
{attributes, record_info(fields, ?AUTH_USERNAME_TAB)}]),
|
{attributes, record_info(fields, ?AUTH_USERNAME_TAB)}]),
|
||||||
mnesia:add_table_copy(?AUTH_USERNAME_TAB, node(), disc_copies),
|
mnesia:add_table_copy(?AUTH_USERNAME_TAB, node(), disc_copies),
|
||||||
|
lists:foreach(fun({Username, Password}) ->
|
||||||
|
add_default_user(Username, Password)
|
||||||
|
end, DefautUsers),
|
||||||
emqttd_ctl:register_cmd(users, {?MODULE, cli}, []),
|
emqttd_ctl:register_cmd(users, {?MODULE, cli}, []),
|
||||||
{ok, Opts}.
|
{ok, []}.
|
||||||
|
|
||||||
check(#mqtt_client{username = undefined}, _Password, _Opts) ->
|
check(#mqtt_client{username = undefined}, _Password, _Opts) ->
|
||||||
{error, "Username undefined"};
|
{error, "Username undefined"};
|
||||||
|
@ -141,3 +147,7 @@ salt() ->
|
||||||
Salt = random:uniform(16#ffffffff),
|
Salt = random:uniform(16#ffffffff),
|
||||||
<<Salt:32>>.
|
<<Salt:32>>.
|
||||||
|
|
||||||
|
bin(A) when is_atom(A) -> bin(atom_to_list(A));
|
||||||
|
bin(L) when is_list(L) -> list_to_binary(L);
|
||||||
|
bin(B) when is_binary(B) -> B.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue