fix(ws): take ws_cookie to clientinfo
see: https://github.com/emqx/emqx/issues/3747#issuecomment-702268570
This commit is contained in:
parent
9595b49789
commit
b883e238bf
|
@ -183,8 +183,9 @@ init(ConnInfo = #{peername := {PeerHost, _Port},
|
|||
is_bridge => false,
|
||||
is_superuser => false
|
||||
}, Options),
|
||||
#channel{conninfo = ConnInfo,
|
||||
clientinfo = ClientInfo,
|
||||
{NClientInfo, NConnInfo} = take_ws_cookie(ClientInfo, ConnInfo),
|
||||
#channel{conninfo = NConnInfo,
|
||||
clientinfo = NClientInfo,
|
||||
topic_aliases = #{inbound => #{},
|
||||
outbound => #{}
|
||||
},
|
||||
|
@ -213,6 +214,14 @@ setting_peercert_infos(Peercert, ClientInfo, Options) ->
|
|||
end,
|
||||
ClientInfo#{username => Username, dn => DN, cn => CN}.
|
||||
|
||||
take_ws_cookie(ClientInfo, ConnInfo) ->
|
||||
case maps:take(ws_cookie, ConnInfo) of
|
||||
{WsCookie, NConnInfo} ->
|
||||
{ClientInfo#{ws_cookie => WsCookie}, NConnInfo};
|
||||
_ ->
|
||||
{ClientInfo, ConnInfo}
|
||||
end.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Handle incoming packet
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
|
@ -687,6 +687,18 @@ t_terminate(_) ->
|
|||
ok = emqx_channel:terminate(sock_error, channel(#{conn_state => connected})),
|
||||
ok = emqx_channel:terminate({shutdown, kicked}, channel(#{conn_state => connected})).
|
||||
|
||||
t_ws_cookie_init(_) ->
|
||||
WsCookie = [{<<"session_id">>, <<"xyz">>}],
|
||||
ConnInfo = #{socktype => ws,
|
||||
peername => {{127,0,0,1}, 3456},
|
||||
sockname => {{127,0,0,1}, 1883},
|
||||
peercert => nossl,
|
||||
conn_mod => emqx_ws_connection,
|
||||
ws_cookie => WsCookie
|
||||
},
|
||||
Channel = emqx_channel:init(ConnInfo, [{zone, zone}]),
|
||||
?assertMatch(#{ws_cookie := WsCookie}, emqx_channel:info(clientinfo, Channel)).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Helper functions
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue