fix(authn/http): log meaningful error message if http header is missing
This commit is contained in:
parent
7faf73e0f4
commit
93232d4253
|
@ -678,16 +678,28 @@ do_authenticate(
|
|||
{stop, Result}
|
||||
catch
|
||||
Class:Reason:Stacktrace ->
|
||||
?TRACE_AUTHN(warning, "authenticator_error", #{
|
||||
exception => Class,
|
||||
reason => Reason,
|
||||
stacktrace => Stacktrace,
|
||||
authenticator => ID
|
||||
}),
|
||||
?TRACE_AUTHN(
|
||||
warning,
|
||||
"authenticator_error",
|
||||
maybe_add_stacktrace(
|
||||
Class,
|
||||
#{
|
||||
exception => Class,
|
||||
reason => Reason,
|
||||
authenticator => ID
|
||||
},
|
||||
Stacktrace
|
||||
)
|
||||
),
|
||||
emqx_metrics_worker:inc(authn_metrics, MetricsID, nomatch),
|
||||
do_authenticate(ChainName, More, Credential)
|
||||
end.
|
||||
|
||||
maybe_add_stacktrace('throw', Data, _Stacktrace) ->
|
||||
Data;
|
||||
maybe_add_stacktrace(_, Data, Stacktrace) ->
|
||||
Data#{stacktrace => Stacktrace}.
|
||||
|
||||
authenticate_with_provider(#authenticator{id = ID, provider = Provider, state = State}, Credential) ->
|
||||
AuthnResult = Provider:authenticate(Credential, State),
|
||||
?TRACE_AUTHN("authenticator_result", #{
|
||||
|
|
|
@ -189,7 +189,9 @@ qs([{K, V} | More], Acc) ->
|
|||
serialize_body(<<"application/json">>, Body) ->
|
||||
emqx_utils_json:encode(Body);
|
||||
serialize_body(<<"application/x-www-form-urlencoded">>, Body) ->
|
||||
qs(maps:to_list(Body)).
|
||||
qs(maps:to_list(Body));
|
||||
serialize_body(undefined, _) ->
|
||||
throw("missing_content_type_header").
|
||||
|
||||
handle_response(Headers, Body) ->
|
||||
ContentType = proplists:get_value(<<"content-type">>, Headers),
|
||||
|
|
Loading…
Reference in New Issue