Merge pull request #4874 from Rory-Z/fix/fix-issue-#4815
fix(ws connect): fix ws connect with Proxy Protocol capture wrong client-ip
This commit is contained in:
commit
1340e8c16e
|
@ -2,6 +2,7 @@
|
||||||
{VSN,
|
{VSN,
|
||||||
[
|
[
|
||||||
{"4.3.1", [
|
{"4.3.1", [
|
||||||
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
||||||
|
@ -14,6 +15,7 @@
|
||||||
]},
|
]},
|
||||||
{"4.3.0", [
|
{"4.3.0", [
|
||||||
{load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
|
{load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_congestion, brutal_purge, soft_purge, []},
|
{load_module, emqx_congestion, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
|
@ -32,6 +34,7 @@
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
{"4.3.1", [
|
{"4.3.1", [
|
||||||
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
||||||
|
@ -44,6 +47,7 @@
|
||||||
]},
|
]},
|
||||||
{"4.3.0", [
|
{"4.3.0", [
|
||||||
{load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
|
{load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_congestion, brutal_purge, soft_purge, []},
|
{load_module, emqx_congestion, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
|
|
|
@ -257,13 +257,16 @@ websocket_init([Req, Opts]) ->
|
||||||
case proplists:get_bool(proxy_protocol, Opts)
|
case proplists:get_bool(proxy_protocol, Opts)
|
||||||
andalso maps:get(proxy_header, Req) of
|
andalso maps:get(proxy_header, Req) of
|
||||||
#{src_address := SrcAddr, src_port := SrcPort, ssl := SSL} ->
|
#{src_address := SrcAddr, src_port := SrcPort, ssl := SSL} ->
|
||||||
ProxyName = {SrcAddr, SrcPort},
|
SourceName = {SrcAddr, SrcPort},
|
||||||
%% Notice: Only CN is available in Proxy Protocol V2 additional info
|
%% Notice: Only CN is available in Proxy Protocol V2 additional info
|
||||||
ProxySSL = case maps:get(cn, SSL, undefined) of
|
SourceSSL = case maps:get(cn, SSL, undefined) of
|
||||||
undeined -> nossl;
|
undeined -> nossl;
|
||||||
CN -> [{pp2_ssl_cn, CN}]
|
CN -> [{pp2_ssl_cn, CN}]
|
||||||
end,
|
end,
|
||||||
{ProxyName, ProxySSL};
|
{SourceName, SourceSSL};
|
||||||
|
#{src_address := SrcAddr, src_port := SrcPort} ->
|
||||||
|
SourceName = {SrcAddr, SrcPort},
|
||||||
|
{SourceName , nossl};
|
||||||
_ ->
|
_ ->
|
||||||
{get_peer(Req, Opts), cowboy_req:cert(Req)}
|
{get_peer(Req, Opts), cowboy_req:cert(Req)}
|
||||||
end,
|
end,
|
||||||
|
|
Loading…
Reference in New Issue