feat(exproto): abandon the mountpoint field in AuthenticateRequest
This field was introduced in v4.x, but in fact, in 5.0 we have provided `gateway.exproto.mountpoint` for configuration, so there is no need to override it through the Authenticate request
This commit is contained in:
parent
3a7d4ea29d
commit
7684cefa86
|
@ -277,6 +277,8 @@ message ClientInfo {
|
||||||
|
|
||||||
string username = 4;
|
string username = 4;
|
||||||
|
|
||||||
|
// deprecated since v5.1.0
|
||||||
|
// the request value of `mountpoint` will be ignored after v5.1.0
|
||||||
string mountpoint = 5;
|
string mountpoint = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
-include_lib("emqx/include/emqx_mqtt.hrl").
|
-include_lib("emqx/include/emqx_mqtt.hrl").
|
||||||
-include_lib("emqx/include/types.hrl").
|
-include_lib("emqx/include/types.hrl").
|
||||||
-include_lib("emqx/include/logger.hrl").
|
-include_lib("emqx/include/logger.hrl").
|
||||||
|
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
info/1,
|
info/1,
|
||||||
|
@ -121,11 +122,11 @@ info(ctx, #channel{ctx = Ctx}) ->
|
||||||
stats(#channel{subscriptions = Subs}) ->
|
stats(#channel{subscriptions = Subs}) ->
|
||||||
[
|
[
|
||||||
{subscriptions_cnt, maps:size(Subs)},
|
{subscriptions_cnt, maps:size(Subs)},
|
||||||
{subscriptions_max, 0},
|
{subscriptions_max, infinity},
|
||||||
{inflight_cnt, 0},
|
{inflight_cnt, 0},
|
||||||
{inflight_max, 0},
|
{inflight_max, infinity},
|
||||||
{mqueue_len, 0},
|
{mqueue_len, 0},
|
||||||
{mqueue_max, 0},
|
{mqueue_max, infinity},
|
||||||
{mqueue_dropped, 0},
|
{mqueue_dropped, 0},
|
||||||
{next_pkt_id, 0},
|
{next_pkt_id, 0},
|
||||||
{awaiting_rel_cnt, 0},
|
{awaiting_rel_cnt, 0},
|
||||||
|
@ -164,7 +165,8 @@ init(
|
||||||
DefaultClientInfo = default_clientinfo(NConnInfo),
|
DefaultClientInfo = default_clientinfo(NConnInfo),
|
||||||
ClientInfo = DefaultClientInfo#{
|
ClientInfo = DefaultClientInfo#{
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
enable_authn => EnableAuthn
|
enable_authn => EnableAuthn,
|
||||||
|
mountpoint => maps:get(mountpoint, Options, undefined)
|
||||||
},
|
},
|
||||||
Channel = #channel{
|
Channel = #channel{
|
||||||
ctx = Ctx,
|
ctx = Ctx,
|
||||||
|
@ -758,7 +760,23 @@ enrich_conninfo(InClientInfo, ConnInfo) ->
|
||||||
maps:merge(ConnInfo, maps:with(Ks, InClientInfo)).
|
maps:merge(ConnInfo, maps:with(Ks, InClientInfo)).
|
||||||
|
|
||||||
enrich_clientinfo(InClientInfo = #{proto_name := ProtoName}, ClientInfo) ->
|
enrich_clientinfo(InClientInfo = #{proto_name := ProtoName}, ClientInfo) ->
|
||||||
Ks = [clientid, username, mountpoint],
|
Ks = [clientid, username],
|
||||||
|
case maps:get(mountpoint, InClientInfo, <<>>) of
|
||||||
|
<<>> ->
|
||||||
|
ok;
|
||||||
|
Mp ->
|
||||||
|
?tp(
|
||||||
|
warning,
|
||||||
|
failed_to_override_mountpoint,
|
||||||
|
#{
|
||||||
|
reason =>
|
||||||
|
"The mountpoint in AuthenticateRequest has been deprecated. "
|
||||||
|
"Please use the `gateway.exproto.mountpoint` configuration.",
|
||||||
|
requested_mountpoint => Mp,
|
||||||
|
configured_mountpoint => maps:get(mountpoint, ClientInfo)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end,
|
||||||
NClientInfo = maps:merge(ClientInfo, maps:with(Ks, InClientInfo)),
|
NClientInfo = maps:merge(ClientInfo, maps:with(Ks, InClientInfo)),
|
||||||
NClientInfo#{protocol => proto_name_to_protocol(ProtoName)}.
|
NClientInfo#{protocol => proto_name_to_protocol(ProtoName)}.
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@ init_per_group(LisType, ServiceName, Scheme, Cfg) ->
|
||||||
Svrs = emqx_exproto_echo_svr:start(Scheme),
|
Svrs = emqx_exproto_echo_svr:start(Scheme),
|
||||||
application:load(emqx_gateway_exproto),
|
application:load(emqx_gateway_exproto),
|
||||||
emqx_common_test_helpers:start_apps(
|
emqx_common_test_helpers:start_apps(
|
||||||
[emqx_authn, emqx_gateway],
|
[emqx_conf, emqx_authn, emqx_gateway],
|
||||||
fun(App) ->
|
fun(App) ->
|
||||||
set_special_cfg(App, LisType, ServiceName, Scheme)
|
set_special_cfg(App, LisType, ServiceName, Scheme)
|
||||||
end
|
end
|
||||||
|
@ -143,7 +143,7 @@ init_per_group(LisType, ServiceName, Scheme, Cfg) ->
|
||||||
|
|
||||||
end_per_group(_, Cfg) ->
|
end_per_group(_, Cfg) ->
|
||||||
emqx_config:erase(gateway),
|
emqx_config:erase(gateway),
|
||||||
emqx_common_test_helpers:stop_apps([emqx_gateway, emqx_authn]),
|
emqx_common_test_helpers:stop_apps([emqx_gateway, emqx_authn, emqx_conf]),
|
||||||
emqx_exproto_echo_svr:stop(proplists:get_value(servers, Cfg)).
|
emqx_exproto_echo_svr:stop(proplists:get_value(servers, Cfg)).
|
||||||
|
|
||||||
init_per_testcase(TestCase, Cfg) when
|
init_per_testcase(TestCase, Cfg) when
|
||||||
|
@ -166,6 +166,7 @@ set_special_cfg(emqx_gateway, LisType, ServiceName, Scheme) ->
|
||||||
#{
|
#{
|
||||||
server => #{bind => 9100},
|
server => #{bind => 9100},
|
||||||
idle_timeout => 5000,
|
idle_timeout => 5000,
|
||||||
|
mountpoint => <<"ct/">>,
|
||||||
handler => #{
|
handler => #{
|
||||||
address => Addrs,
|
address => Addrs,
|
||||||
service_name => ServiceName,
|
service_name => ServiceName,
|
||||||
|
@ -196,7 +197,8 @@ t_mountpoint_echo(Cfg) ->
|
||||||
proto_name => <<"demo">>,
|
proto_name => <<"demo">>,
|
||||||
proto_ver => <<"v0.1">>,
|
proto_ver => <<"v0.1">>,
|
||||||
clientid => <<"test_client_1">>,
|
clientid => <<"test_client_1">>,
|
||||||
mountpoint => <<"ct/">>
|
%% deperated since v5.1.0, and this value will be ignored
|
||||||
|
mountpoint => <<"deperated/">>
|
||||||
},
|
},
|
||||||
Password = <<"123456">>,
|
Password = <<"123456">>,
|
||||||
|
|
||||||
|
@ -239,7 +241,7 @@ t_raw_publish(Cfg) ->
|
||||||
proto_name => <<"demo">>,
|
proto_name => <<"demo">>,
|
||||||
proto_ver => <<"v0.1">>,
|
proto_ver => <<"v0.1">>,
|
||||||
clientid => <<"test_client_1">>,
|
clientid => <<"test_client_1">>,
|
||||||
mountpoint => <<"ct/">>
|
mountpoint => <<>>
|
||||||
},
|
},
|
||||||
Password = <<"123456">>,
|
Password = <<"123456">>,
|
||||||
|
|
||||||
|
@ -321,7 +323,7 @@ t_acl_deny(Cfg) ->
|
||||||
send(Sock, SubBin),
|
send(Sock, SubBin),
|
||||||
{ok, SubAckBin} = recv(Sock, 5000),
|
{ok, SubAckBin} = recv(Sock, 5000),
|
||||||
|
|
||||||
emqx:publish(emqx_message:make(<<"t/dn">>, <<"echo">>)),
|
emqx:publish(emqx_message:make(<<"ct/t/dn">>, <<"echo">>)),
|
||||||
|
|
||||||
PubBin = frame_publish(<<"t/dn">>, 0, <<"echo">>),
|
PubBin = frame_publish(<<"t/dn">>, 0, <<"echo">>),
|
||||||
PubBinFailedAck = frame_puback(1),
|
PubBinFailedAck = frame_puback(1),
|
||||||
|
@ -510,7 +512,7 @@ t_hook_message_delivered(Cfg) ->
|
||||||
|
|
||||||
emqx_hooks:add('message.delivered', {?MODULE, hook_fun5, []}, 1000),
|
emqx_hooks:add('message.delivered', {?MODULE, hook_fun5, []}, 1000),
|
||||||
|
|
||||||
emqx:publish(emqx_message:make(<<"t/dn">>, <<"1">>)),
|
emqx:publish(emqx_message:make(<<"ct/t/dn">>, <<"1">>)),
|
||||||
PubBin1 = frame_publish(<<"t/dn">>, 0, <<"2">>),
|
PubBin1 = frame_publish(<<"t/dn">>, 0, <<"2">>),
|
||||||
{ok, PubBin1} = recv(Sock, 5000),
|
{ok, PubBin1} = recv(Sock, 5000),
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue