diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index 3f4507a3c..40654a84b 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -222,7 +222,7 @@ roots(high) -> ref(?EMQX_AUTHORIZATION_CONFIG_ROOT_NAME), #{importance => ?IMPORTANCE_HIDDEN} )} - ] ++ emqx_schema_hooks:injection_point('roots.high'); + ] ++ emqx_schema_hooks:injection_point('authentication'); roots(medium) -> [ {"broker", @@ -1749,7 +1749,7 @@ mqtt_listener(Bind) -> default => <<"3s">> } )} - ] ++ emqx_schema_hooks:injection_point('mqtt.listener'). + ] ++ emqx_schema_hooks:injection_point('listeners.authentication'). base_listener(Bind) -> [ diff --git a/apps/emqx/src/emqx_schema_hooks.erl b/apps/emqx/src/emqx_schema_hooks.erl index 59fb1588b..fd80db635 100644 --- a/apps/emqx/src/emqx_schema_hooks.erl +++ b/apps/emqx/src/emqx_schema_hooks.erl @@ -28,9 +28,7 @@ -define(MODULE_PT_KEY(MOD_NAME), {?MODULE, mod, MOD_NAME}). -export([ - inject_fields/3, injection_point/1, - inject_fields_from_mod/1 ]). @@ -45,17 +43,7 @@ %%-------------------------------------------------------------------- injection_point(PointName) -> - InjectedFields = persistent_term:get(?HOOKPOINT_PT_KEY(PointName), #{}), - lists:concat(maps:values(InjectedFields)). - -inject_fields(PointName, Name, Fields) -> - Key = ?HOOKPOINT_PT_KEY(PointName), - InjectedFields = persistent_term:get(Key, #{}), - persistent_term:put(Key, InjectedFields#{Name => Fields}). - -%%-------------------------------------------------------------------- -%% Internal API -%%-------------------------------------------------------------------- + persistent_term:get(?HOOKPOINT_PT_KEY(PointName), []). inject_fields_from_mod(Module) -> case persistent_term:get(?MODULE_PT_KEY(Module), false) of @@ -105,10 +93,14 @@ do_inject_fields_from_mod(Module) -> ok end. -do_inject_fields_from_mod(Module, HookFields) -> +do_inject_fields_from_mod(_Module, HookFields) -> maps:foreach( fun(PointName, Fields) -> - inject_fields(PointName, Module, Fields) + inject_fields(PointName, Fields) end, HookFields ). + +inject_fields(PointName, Fields) -> + Key = ?HOOKPOINT_PT_KEY(PointName), + persistent_term:put(Key, Fields). diff --git a/apps/emqx_authn/src/emqx_authn_schema.erl b/apps/emqx_authn/src/emqx_authn_schema.erl index 2a12899aa..f77158f0c 100644 --- a/apps/emqx_authn/src/emqx_authn_schema.erl +++ b/apps/emqx_authn/src/emqx_authn_schema.erl @@ -42,8 +42,8 @@ roots() -> []. injected_fields() -> #{ - 'roots.high' => global_auth_fields(), - 'mqtt.listener' => mqtt_listener_auth_fields() + 'authentication' => global_auth_fields(), + 'listeners.authentication' => mqtt_listener_auth_fields() }. tags() ->