From ed2d5aa48a40526aae443cc7b23f869e54f40fff Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Wed, 14 Dec 2022 19:31:52 +0300 Subject: [PATCH] fix: handle status in `format_status/1` callback Which is expected argument type for this callback. Also try to make sure that random maps won't pass through this callback unnoticed. --- .../src/emqx_connector_jwt_worker.erl | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/apps/emqx_connector/src/emqx_connector_jwt_worker.erl b/apps/emqx_connector/src/emqx_connector_jwt_worker.erl index c925aca20..cb975ca63 100644 --- a/apps/emqx_connector/src/emqx_connector_jwt_worker.erl +++ b/apps/emqx_connector/src/emqx_connector_jwt_worker.erl @@ -154,8 +154,8 @@ handle_info({timeout, TRef, ?refresh_jwt}, State0 = #{refresh_timer := TRef}) -> handle_info(_Msg, State) -> {noreply, State}. -format_status(State) -> - censor_secrets(State). +format_status(Status = #{state := State}) -> + Status#{state => censor_secrets(State)}. format_status(_Opt, [_PDict, State0]) -> State = censor_secrets(State0), @@ -222,16 +222,13 @@ ensure_timer(State) -> State. -spec censor_secrets(state()) -> map(). -censor_secrets(State) -> - maps:map( - fun - (Key, _Value) when - Key =:= jwt; - Key =:= jwk - -> - "******"; - (_Key, Value) -> - Value - end, - State - ). +censor_secrets(State = #{jwt := JWT, jwk := JWK}) -> + State#{ + jwt := censor_secret(JWT), + jwk := censor_secret(JWK) + }. + +censor_secret(undefined) -> + undefined; +censor_secret(_Secret) -> + "******".