fix(authn): avoid crashing emqx_authentication process due to un-safe call

This commit is contained in:
JianBo He 2022-04-25 21:22:17 +08:00
parent 0a16c9fabf
commit 5ac842b657
1 changed files with 7 additions and 1 deletions

View File

@ -417,6 +417,7 @@ list_users(ChainName, AuthenticatorID, FuzzyParams) ->
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
init(_Opts) -> init(_Opts) ->
process_flag(trap_exit, true),
ok = emqx_config_handler:add_handler([?CONF_ROOT], ?MODULE), ok = emqx_config_handler:add_handler([?CONF_ROOT], ?MODULE),
ok = emqx_config_handler:add_handler([listeners, '?', '?', ?CONF_ROOT], ?MODULE), ok = emqx_config_handler:add_handler([listeners, '?', '?', ?CONF_ROOT], ?MODULE),
{ok, #{hooked => false, providers => #{}}}. {ok, #{hooked => false, providers => #{}}}.
@ -784,7 +785,12 @@ update_chain(ChainName, UpdateFun) ->
[] -> [] ->
{error, {not_found, {chain, ChainName}}}; {error, {not_found, {chain, ChainName}}};
[Chain] -> [Chain] ->
UpdateFun(Chain) try
UpdateFun(Chain)
catch
Class:Reason:Stk ->
{error, {exception, {Class, Reason, Stk}}}
end
end. end.
call_authenticator(ChainName, AuthenticatorID, Func, Args) -> call_authenticator(ChainName, AuthenticatorID, Func, Args) ->