Merge pull request #5940 from savonarola/mqtt-http-api-validations-fix
fix(mgmt api): allow empty clientid in publish
This commit is contained in:
commit
d2f4c55fd7
|
@ -1,13 +1,13 @@
|
|||
%% -*- mode: erlang -*-
|
||||
{VSN,
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
[ {<<"4\\.3\\.[0-9]+">>,
|
||||
[ {apply,{minirest,stop_http,['http:management']}},
|
||||
{apply,{minirest,stop_http,['https:management']}},
|
||||
{restart_application, emqx_management}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
[ {<<"4\\.3\\.[0-9]+">>,
|
||||
[ {apply,{minirest,stop_http,['http:management']}},
|
||||
{apply,{minirest,stop_http,['https:management']}},
|
||||
{restart_application, emqx_management}
|
||||
|
|
|
@ -158,7 +158,7 @@ do_subscribe(ClientId, Topics, QoS) ->
|
|||
_ -> ok
|
||||
end.
|
||||
|
||||
do_publish(ClientId, _Topics, _Qos, _Retain, _Payload) when not is_binary(ClientId) ->
|
||||
do_publish(ClientId, _Topics, _Qos, _Retain, _Payload) when not (is_binary(ClientId) or (ClientId =:= undefined)) ->
|
||||
{ok, ?ERROR8, <<"bad clientid: must be string">>};
|
||||
do_publish(_ClientId, [], _Qos, _Retain, _Payload) ->
|
||||
{ok, ?ERROR15, bad_topic};
|
||||
|
|
|
@ -447,6 +447,19 @@ t_pubsub(_) ->
|
|||
after 100 ->
|
||||
false
|
||||
end),
|
||||
|
||||
% no clientid
|
||||
{ok, Code} = request_api(post, api_path(["mqtt/publish"]), [], auth_header_(),
|
||||
#{<<"topic">> => <<"mytopic">>,
|
||||
<<"qos">> => 1,
|
||||
<<"payload">> => <<"hello">>}),
|
||||
?assert(receive
|
||||
{publish, #{payload := <<"hello">>}} ->
|
||||
true
|
||||
after 100 ->
|
||||
false
|
||||
end),
|
||||
|
||||
%% json payload
|
||||
{ok, Code} = request_api(post, api_path(["mqtt/publish"]), [], auth_header_(),
|
||||
#{<<"clientid">> => ClientId,
|
||||
|
@ -491,9 +504,9 @@ t_pubsub(_) ->
|
|||
|
||||
ok = emqtt:disconnect(C1),
|
||||
|
||||
?assertEqual(2, emqx_metrics:val('messages.qos1.received') - Qos1Received),
|
||||
?assertEqual(3, emqx_metrics:val('messages.qos1.received') - Qos1Received),
|
||||
?assertEqual(2, emqx_metrics:val('messages.qos2.received') - Qos2Received),
|
||||
?assertEqual(4, emqx_metrics:val('messages.received') - Received).
|
||||
?assertEqual(5, emqx_metrics:val('messages.received') - Received).
|
||||
|
||||
loop([]) -> [];
|
||||
|
||||
|
|
Loading…
Reference in New Issue