fix: set authentication array from ENV failed

This commit is contained in:
Zhongwen Deng 2022-11-28 21:15:18 +08:00 committed by Zaiming (Stone) Shi
parent 622ac68bfa
commit e57a1f2c8b
1 changed files with 9 additions and 2 deletions

View File

@ -71,8 +71,15 @@ do_check_config(#{<<"mechanism">> := Mec} = Config, Opts) ->
Opts#{atom_key => true} Opts#{atom_key => true}
) )
end; end;
do_check_config(_Config, _Opts) -> do_check_config(Config, _Opts) when is_map(Config) ->
throw({invalid_config, "mechanism_field_required"}). throw({invalid_config, "mechanism_field_required", Config});
do_check_config(RawConf, Opts) ->
%% authentication conf is lazy type, when it comes from ENV, it is a string
%% EMQX_AUTHENTICATION__1="{mechanism=\"password_based\"...}"
case hocon:binary(RawConf, Opts) of
{ok, Conf} -> do_check_config(Conf, Opts);
{error, Reason} -> throw({invalid_config, Reason})
end.
atom(Bin) -> atom(Bin) ->
try try