fix: dashboard https's password can't update
This commit is contained in:
parent
5c08c4ff4e
commit
2eab3f1cdb
|
@ -63,22 +63,42 @@ remove_handler() ->
|
|||
ok.
|
||||
|
||||
pre_config_update(_Path, UpdateConf0, RawConf) ->
|
||||
UpdateConf =
|
||||
case UpdateConf0 of
|
||||
#{<<"default_password">> := <<"******">>} ->
|
||||
maps:remove(<<"default_password">>, UpdateConf0);
|
||||
_ ->
|
||||
UpdateConf0
|
||||
end,
|
||||
UpdateConf = remove_sensitive_data(UpdateConf0),
|
||||
NewConf = emqx_map_lib:deep_merge(RawConf, UpdateConf),
|
||||
{ok, NewConf}.
|
||||
|
||||
-define(SENSITIVE_PASSWORD, <<"******">>).
|
||||
|
||||
remove_sensitive_data(Conf0) ->
|
||||
Conf1 =
|
||||
case Conf0 of
|
||||
#{<<"default_password">> := ?SENSITIVE_PASSWORD} ->
|
||||
maps:remove(<<"default_password">>, Conf0);
|
||||
_ ->
|
||||
Conf0
|
||||
end,
|
||||
case Conf1 of
|
||||
#{<<"listeners">> := #{<<"https">> := #{<<"password">> := ?SENSITIVE_PASSWORD}}} ->
|
||||
emqx_map_lib:deep_remove([<<"listeners">>, <<"https">>, <<"password">>], Conf1);
|
||||
_ ->
|
||||
Conf1
|
||||
end.
|
||||
|
||||
post_config_update(_, _Req, NewConf, OldConf, _AppEnvs) ->
|
||||
#{listeners := NewListeners} = NewConf,
|
||||
#{listeners := OldListeners} = OldConf,
|
||||
#{listeners := #{http := NewHttp, https := NewHttps}} = NewConf,
|
||||
#{listeners := #{http := OldHttp, https := OldHttps}} = OldConf,
|
||||
_ =
|
||||
case NewListeners =:= OldListeners of
|
||||
true -> ok;
|
||||
false -> erlang:send_after(500, ?MODULE, {update_listeners, OldListeners, NewListeners})
|
||||
case diff_listeners(OldHttp, NewHttp, OldHttps, NewHttps) of
|
||||
identical -> ok;
|
||||
{Stop, Start} -> erlang:send_after(500, ?MODULE, {update_listeners, Stop, Start})
|
||||
end,
|
||||
ok.
|
||||
|
||||
diff_listeners(Http, Http, Https, Https) ->
|
||||
identical;
|
||||
diff_listeners(OldHttp, NewHttp, Https, Https) ->
|
||||
{#{http => OldHttp}, #{http => NewHttp}};
|
||||
diff_listeners(Http, Http, OldHttps, NewHttps) ->
|
||||
{#{https => OldHttps}, #{https => NewHttps}};
|
||||
diff_listeners(OldHttp, NewHttp, OldHttps, NewHttps) ->
|
||||
{#{http => OldHttp, https => OldHttps}, #{http => NewHttp, https => NewHttps}}.
|
||||
|
|
|
@ -77,26 +77,14 @@ fields("listeners") ->
|
|||
];
|
||||
fields("http") ->
|
||||
[
|
||||
{"enable",
|
||||
sc(
|
||||
boolean(),
|
||||
#{
|
||||
default => true,
|
||||
desc => ?DESC(listener_enable)
|
||||
}
|
||||
)}
|
||||
enable(true),
|
||||
bind(18803)
|
||||
| common_listener_fields()
|
||||
];
|
||||
fields("https") ->
|
||||
[
|
||||
{"enable",
|
||||
sc(
|
||||
boolean(),
|
||||
#{
|
||||
default => false,
|
||||
desc => ?DESC(listener_enable)
|
||||
}
|
||||
)}
|
||||
enable(false),
|
||||
bind(18804)
|
||||
| common_listener_fields() ++
|
||||
exclude_fields(
|
||||
["enable", "fail_if_no_peer_cert"],
|
||||
|
@ -115,7 +103,6 @@ exclude_fields([FieldName | Rest], Fields) ->
|
|||
|
||||
common_listener_fields() ->
|
||||
[
|
||||
{"bind", fun bind/1},
|
||||
{"num_acceptors",
|
||||
sc(
|
||||
integer(),
|
||||
|
@ -166,6 +153,28 @@ common_listener_fields() ->
|
|||
)}
|
||||
].
|
||||
|
||||
enable(Bool) ->
|
||||
{"enable",
|
||||
sc(
|
||||
boolean(),
|
||||
#{
|
||||
default => Bool,
|
||||
required => true,
|
||||
desc => ?DESC(listener_enable)
|
||||
}
|
||||
)}.
|
||||
|
||||
bind(Port) ->
|
||||
{"bind",
|
||||
sc(
|
||||
hoconsc:union([non_neg_integer(), emqx_schema:ip_port()]),
|
||||
#{
|
||||
default => Port,
|
||||
required => true,
|
||||
desc => ?DESC(bind)
|
||||
}
|
||||
)}.
|
||||
|
||||
desc("dashboard") ->
|
||||
?DESC(desc_dashboard);
|
||||
desc("listeners") ->
|
||||
|
@ -177,12 +186,6 @@ desc("https") ->
|
|||
desc(_) ->
|
||||
undefined.
|
||||
|
||||
bind(type) -> hoconsc:union([non_neg_integer(), emqx_schema:ip_port()]);
|
||||
bind(default) -> 18083;
|
||||
bind(required) -> true;
|
||||
bind(desc) -> ?DESC(bind);
|
||||
bind(_) -> undefined.
|
||||
|
||||
default_username(type) -> binary();
|
||||
default_username(default) -> "admin";
|
||||
default_username(required) -> true;
|
||||
|
|
Loading…
Reference in New Issue