Merge pull request #5766 from tigercl/chore/authn
chore(authn): add supervisor for authn and fix checking errors
This commit is contained in:
commit
7fd7a31300
|
@ -281,8 +281,7 @@ do_post_config_update({move_authenticator, ChainName, AuthenticatorID, Position}
|
||||||
|
|
||||||
check_config(Config) ->
|
check_config(Config) ->
|
||||||
#{authentication := CheckedConfig} =
|
#{authentication := CheckedConfig} =
|
||||||
hocon_schema:check_plain(?MODULE, #{<<"authentication">> => Config},
|
hocon_schema:check_plain(?MODULE, #{<<"authentication">> => Config}, #{atom_key => true}),
|
||||||
#{nullable => true, atom_key => true}),
|
|
||||||
CheckedConfig.
|
CheckedConfig.
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Copyright (c) 2017-2021 EMQ Technologies Co., Ltd. All Rights Reserved.
|
||||||
|
%%
|
||||||
|
%% Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
%% you may not use this file except in compliance with the License.
|
||||||
|
%% You may obtain a copy of the License at
|
||||||
|
%%
|
||||||
|
%% http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
%%
|
||||||
|
%% Unless required by applicable law or agreed to in writing, software
|
||||||
|
%% distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
%% See the License for the specific language governing permissions and
|
||||||
|
%% limitations under the License.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
-module(emqx_authentication_sup).
|
||||||
|
|
||||||
|
-behaviour(supervisor).
|
||||||
|
|
||||||
|
-export([start_link/0]).
|
||||||
|
|
||||||
|
-export([init/1]).
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% API
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Supervisor callbacks
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
init([]) ->
|
||||||
|
SupFlags = #{strategy => one_for_one,
|
||||||
|
intensity => 100,
|
||||||
|
period => 10},
|
||||||
|
|
||||||
|
AuthN = #{id => emqx_authentication,
|
||||||
|
start => {emqx_authentication, start_link, []},
|
||||||
|
restart => permanent,
|
||||||
|
shutdown => 1000,
|
||||||
|
type => worker,
|
||||||
|
modules => [emqx_authentication]},
|
||||||
|
|
||||||
|
{ok, {SupFlags, [AuthN]}}.
|
|
@ -44,12 +44,12 @@ init([]) ->
|
||||||
modules => [emqx_shared_sub]},
|
modules => [emqx_shared_sub]},
|
||||||
|
|
||||||
%% Authentication
|
%% Authentication
|
||||||
AuthN = #{id => authn,
|
AuthNSup = #{id => emqx_authentication_sup,
|
||||||
start => {emqx_authentication, start_link, []},
|
start => {emqx_authentication_sup, start_link, []},
|
||||||
restart => permanent,
|
restart => permanent,
|
||||||
shutdown => 2000,
|
shutdown => infinity,
|
||||||
type => worker,
|
type => supervisor,
|
||||||
modules => [emqx_authentication]},
|
modules => [emqx_authentication_sup]},
|
||||||
|
|
||||||
%% Broker helper
|
%% Broker helper
|
||||||
Helper = #{id => helper,
|
Helper = #{id => helper,
|
||||||
|
@ -59,5 +59,5 @@ init([]) ->
|
||||||
type => worker,
|
type => worker,
|
||||||
modules => [emqx_broker_helper]},
|
modules => [emqx_broker_helper]},
|
||||||
|
|
||||||
{ok, {{one_for_all, 0, 1}, [BrokerPool, SharedSub, AuthN, Helper]}}.
|
{ok, {{one_for_all, 0, 1}, [BrokerPool, SharedSub, AuthNSup, Helper]}}.
|
||||||
|
|
||||||
|
|
|
@ -1971,7 +1971,7 @@ find_config(AuthenticatorID, AuthenticatorsConfig) ->
|
||||||
|
|
||||||
fill_defaults(Config) ->
|
fill_defaults(Config) ->
|
||||||
#{<<"authentication">> := CheckedConfig} = hocon_schema:check_plain(
|
#{<<"authentication">> := CheckedConfig} = hocon_schema:check_plain(
|
||||||
?AUTHN, #{<<"authentication">> => Config}, #{nullable => true, no_conversion => true}),
|
?AUTHN, #{<<"authentication">> => Config}, #{no_conversion => true}),
|
||||||
CheckedConfig.
|
CheckedConfig.
|
||||||
|
|
||||||
convert_certs(#{<<"ssl">> := SSLOpts} = Config) ->
|
convert_certs(#{<<"ssl">> := SSLOpts} = Config) ->
|
||||||
|
|
|
@ -77,7 +77,6 @@ validations() ->
|
||||||
].
|
].
|
||||||
|
|
||||||
url(type) -> binary();
|
url(type) -> binary();
|
||||||
url(nullable) -> false;
|
|
||||||
url(validator) -> [fun check_url/1];
|
url(validator) -> [fun check_url/1];
|
||||||
url(_) -> undefined.
|
url(_) -> undefined.
|
||||||
|
|
||||||
|
@ -98,7 +97,6 @@ headers_no_content_type(default) -> default_headers_no_content_type();
|
||||||
headers_no_content_type(_) -> undefined.
|
headers_no_content_type(_) -> undefined.
|
||||||
|
|
||||||
body(type) -> map();
|
body(type) -> map();
|
||||||
body(nullable) -> false;
|
|
||||||
body(validator) -> [fun check_body/1];
|
body(validator) -> [fun check_body/1];
|
||||||
body(_) -> undefined.
|
body(_) -> undefined.
|
||||||
|
|
||||||
|
|
|
@ -70,15 +70,12 @@ common_fields() ->
|
||||||
] ++ emqx_authn_schema:common_fields().
|
] ++ emqx_authn_schema:common_fields().
|
||||||
|
|
||||||
collection(type) -> binary();
|
collection(type) -> binary();
|
||||||
collection(nullable) -> false;
|
|
||||||
collection(_) -> undefined.
|
collection(_) -> undefined.
|
||||||
|
|
||||||
selector(type) -> map();
|
selector(type) -> map();
|
||||||
selector(nullable) -> false;
|
|
||||||
selector(_) -> undefined.
|
selector(_) -> undefined.
|
||||||
|
|
||||||
password_hash_field(type) -> binary();
|
password_hash_field(type) -> binary();
|
||||||
password_hash_field(nullable) -> false;
|
|
||||||
password_hash_field(_) -> undefined.
|
password_hash_field(_) -> undefined.
|
||||||
|
|
||||||
salt_field(type) -> binary();
|
salt_field(type) -> binary();
|
||||||
|
|
|
@ -63,7 +63,6 @@ salt_position(default) -> prefix;
|
||||||
salt_position(_) -> undefined.
|
salt_position(_) -> undefined.
|
||||||
|
|
||||||
query(type) -> string();
|
query(type) -> string();
|
||||||
query(nullable) -> false;
|
|
||||||
query(_) -> undefined.
|
query(_) -> undefined.
|
||||||
|
|
||||||
query_timeout(type) -> integer();
|
query_timeout(type) -> integer();
|
||||||
|
|
|
@ -59,7 +59,6 @@ password_hash_algorithm(default) -> sha256;
|
||||||
password_hash_algorithm(_) -> undefined.
|
password_hash_algorithm(_) -> undefined.
|
||||||
|
|
||||||
query(type) -> string();
|
query(type) -> string();
|
||||||
query(nullable) -> false;
|
|
||||||
query(_) -> undefined.
|
query(_) -> undefined.
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
|
@ -66,7 +66,6 @@ common_fields() ->
|
||||||
] ++ emqx_authn_schema:common_fields().
|
] ++ emqx_authn_schema:common_fields().
|
||||||
|
|
||||||
query(type) -> string();
|
query(type) -> string();
|
||||||
query(nullable) -> false;
|
|
||||||
query(_) -> undefined.
|
query(_) -> undefined.
|
||||||
|
|
||||||
password_hash_algorithm(type) -> {enum, [plain, md5, sha, sha256, sha512, bcrypt]};
|
password_hash_algorithm(type) -> {enum, [plain, md5, sha, sha256, sha512, bcrypt]};
|
||||||
|
|
Loading…
Reference in New Issue