diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl index b03a7f1b1..3b37fc3ae 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl @@ -127,7 +127,10 @@ headers_no_content_type(desc) -> ?DESC(?FUNCTION_NAME); headers_no_content_type(converter) -> fun(Headers) -> - maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + maps:without( + [<<"content-type">>], + maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + ) end; headers_no_content_type(default) -> default_headers_no_content_type(); @@ -156,12 +159,11 @@ create( #{ method := Method, url := RawURL, - headers := HeadersT, + headers := Headers, body := Body, request_timeout := RequestTimeout } = Config ) -> - Headers = ensure_header_name_type(HeadersT), {BsaeUrlWithPath, Query} = parse_fullpath(RawURL), URIMap = parse_url(BsaeUrlWithPath), ResourceId = emqx_authn_utils:make_resource_id(?MODULE), @@ -171,7 +173,7 @@ create( base_query_template => emqx_authn_utils:parse_deep( cow_qs:parse_qs(to_bin(Query)) ), - headers => maps:to_list(Headers), + headers => Headers, body_template => emqx_authn_utils:parse_deep( maps:to_list(Body) ), @@ -403,14 +405,3 @@ to_bin(L) when is_list(L) -> get_conf_val(Name, Conf) -> hocon_maps:get(?CONF_NS ++ "." ++ Name, Conf). - -ensure_header_name_type(Headers) -> - Fun = fun - (Key, _Val, Acc) when is_binary(Key) -> - Acc; - (Key, Val, Acc) when is_atom(Key) -> - Acc2 = maps:remove(Key, Acc), - BinKey = erlang:atom_to_binary(Key), - Acc2#{BinKey => Val} - end, - maps:fold(Fun, Headers, Headers). diff --git a/apps/emqx_authz/src/emqx_authz_api_schema.erl b/apps/emqx_authz/src/emqx_authz_api_schema.erl index bed953dbb..5550d4769 100644 --- a/apps/emqx_authz/src/emqx_authz_api_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_api_schema.erl @@ -141,7 +141,10 @@ headers_no_content_type(desc) -> ?DESC(?FUNCTION_NAME); headers_no_content_type(converter) -> fun(Headers) -> - maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + maps:without( + [<<"content-type">>], + maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + ) end; headers_no_content_type(default) -> default_headers_no_content_type(); diff --git a/apps/emqx_authz/src/emqx_authz_http.erl b/apps/emqx_authz/src/emqx_authz_http.erl index 94dfcecf3..2b766b063 100644 --- a/apps/emqx_authz/src/emqx_authz_http.erl +++ b/apps/emqx_authz/src/emqx_authz_http.erl @@ -157,7 +157,7 @@ generate_request( _ -> NPath = append_query(Path, NBaseQuery), NBody = serialize_body( - proplists:get_value(<<"Accept">>, Headers, <<"application/json">>), + proplists:get_value(<<"accept">>, Headers, <<"application/json">>), Body ), {NPath, Headers, NBody} diff --git a/apps/emqx_authz/src/emqx_authz_schema.erl b/apps/emqx_authz/src/emqx_authz_schema.erl index 3debb6a0f..2a6c16e3f 100644 --- a/apps/emqx_authz/src/emqx_authz_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_schema.erl @@ -230,7 +230,12 @@ headers_no_content_type(desc) -> ?DESC(?FUNCTION_NAME); headers_no_content_type(converter) -> fun(Headers) -> - maps:to_list(maps:merge(default_headers_no_content_type(), transform_header_name(Headers))) + maps:to_list( + maps:without( + [<<"content-type">>], + maps:merge(default_headers_no_content_type(), transform_header_name(Headers)) + ) + ) end; headers_no_content_type(default) -> default_headers_no_content_type();