From c73b371a7a7e18fee3d4349befda5bb87ca6068e Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Tue, 12 Dec 2023 17:37:19 +0800 Subject: [PATCH] feat: don't merge default headers if user already setting one --- apps/emqx_auth/src/emqx_authn/emqx_authn_utils.erl | 4 ++-- apps/emqx_conf/test/emqx_conf_schema_tests.erl | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/emqx_auth/src/emqx_authn/emqx_authn_utils.erl b/apps/emqx_auth/src/emqx_authn/emqx_authn_utils.erl index f782e0e6c..ddcddabc6 100644 --- a/apps/emqx_auth/src/emqx_authn/emqx_authn_utils.erl +++ b/apps/emqx_auth/src/emqx_authn/emqx_authn_utils.erl @@ -281,12 +281,12 @@ parse_url(Url) -> end. convert_headers(Headers) -> - maps:merge(default_headers(), transform_header_name(Headers)). + transform_header_name(Headers). convert_headers_no_content_type(Headers) -> maps:without( [<<"content-type">>], - maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + transform_header_name(Headers) ). default_headers() -> diff --git a/apps/emqx_conf/test/emqx_conf_schema_tests.erl b/apps/emqx_conf/test/emqx_conf_schema_tests.erl index 22f8c5575..6aafd99fc 100644 --- a/apps/emqx_conf/test/emqx_conf_schema_tests.erl +++ b/apps/emqx_conf/test/emqx_conf_schema_tests.erl @@ -358,7 +358,7 @@ authn_validations_test() -> Headers0 = authentication_headers(Res0), ?assertEqual(<<"application/json">>, maps:get(<<"content-type">>, Headers0)), %% accept from converter - ?assertEqual(<<"application/json">>, maps:get(<<"accept">>, Headers0)), + ?assertNot(maps:is_key(<<"accept">>, Headers0)), OKHttp = to_bin(?BASE_AUTHN_ARRAY, [post, false, <<"http://127.0.0.1:8080">>]), Conf1 = <>, @@ -366,7 +366,7 @@ authn_validations_test() -> {_, Res1} = hocon_tconf:map_translate(emqx_conf_schema, ConfMap1, #{format => richmap}), Headers1 = authentication_headers(Res1), ?assertEqual(<<"application/json">>, maps:get(<<"content-type">>, Headers1), Headers1), - ?assertEqual(<<"application/json">>, maps:get(<<"accept">>, Headers1), Headers1), + ?assertNot(maps:is_key(<<"accept">>, Headers1)), DisableSSLWithHttps = to_bin(?BASE_AUTHN_ARRAY, [post, false, <<"https://127.0.0.1:8080">>]), Conf2 = <>, @@ -382,16 +382,16 @@ authn_validations_test() -> {_, Res3} = hocon_tconf:map_translate(emqx_conf_schema, ConfMap3, #{format => richmap}), Headers3 = authentication_headers(Res3), %% remove the content-type header when get method - ?assertEqual(false, maps:is_key(<<"content-type">>, Headers3), Headers3), - ?assertEqual(<<"application/json">>, maps:get(<<"accept">>, Headers3), Headers3), + ?assertNot(maps:is_key(<<"content-type">>, Headers3), Headers3), + ?assertNot(maps:is_key(<<"accept">>, Headers3), Headers3), BadHeaderWithTuple = binary:replace(BadHeader, [<<"[">>, <<"]">>], <<"">>, [global]), Conf4 = <>, {ok, ConfMap4} = hocon:binary(Conf4, #{format => richmap}), {_, Res4} = hocon_tconf:map_translate(emqx_conf_schema, ConfMap4, #{}), Headers4 = authentication_headers(Res4), - ?assertEqual(false, maps:is_key(<<"content-type">>, Headers4), Headers4), - ?assertEqual(<<"application/json">>, maps:get(<<"accept">>, Headers4), Headers4), + ?assertNot(maps:is_key(<<"content-type">>, Headers4), Headers4), + ?assertNot(maps:is_key(<<"accept">>, Headers4), Headers4), ok. %% erlfmt-ignore