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