From 68f4c92366ef32e307555312e91505c78dcfcea0 Mon Sep 17 00:00:00 2001 From: wujiawei <12345678> Date: Thu, 8 May 2025 09:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=E3=80=91=E4=BF=AE=E6=94=B9=20*=20?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/NettyHttpProxyHandler.java | 18 +++++++++--------- .../NettySocks5CommandRequestHandler.java | 13 +++++++------ .../heartbeat/protocol/route/ProxyRoute.java | 10 +++++----- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettyHttpProxyHandler.java b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettyHttpProxyHandler.java index 5e66f4b..e1f0471 100644 --- a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettyHttpProxyHandler.java +++ b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettyHttpProxyHandler.java @@ -6,7 +6,6 @@ import io.netty.channel.*; import io.netty.channel.socket.nio.NioDatagramChannel; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.codec.http.FullHttpRequest; -import io.netty.handler.codec.socksx.v5.Socks5AddressType; import lombok.extern.slf4j.Slf4j; import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter; @@ -17,6 +16,7 @@ import org.framework.lazy.cloud.network.heartbeat.protocol.route.ProxyRoute; import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext; import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType; import org.framework.lazy.cloud.network.heartbeat.protocol.utils.FullHttpRequestUtils; +import org.wu.framework.core.NormalUsedString; import org.wu.framework.core.utils.ObjectUtils; import java.net.URI; @@ -67,10 +67,10 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter { if (msg instanceof FullHttpRequest) { FullHttpRequest request = (FullHttpRequest) msg; URI uri = new URI(request.uri()); - String host = uri.getHost(); - int port = uri.getPort(); - if (port == -1) { - port = 80; + String originHost = uri.getHost(); + int originPort = uri.getPort(); + if (originPort == -1) { + originPort = 80; } ByteBuf byteBuf = FullHttpRequestUtils.toByteBuf(request); @@ -82,7 +82,7 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter { NettyProxyMsg proxyMsg = new NettyProxyMsg(); - ProxyRoute route = RouteContext.getRoute(host, String.valueOf(port)); + ProxyRoute route = RouteContext.getRoute(originHost, String.valueOf(originPort)); proxyMsg.setVisitorId(visitorId); proxyMsg.setData(bytes); @@ -92,12 +92,12 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter { if(ObjectUtils.isEmpty(route)){ // 本地代理 proxyMsg.setType(ProxyMessageType.HTTP_LOCAL_PROXY); - proxyMsg.setClientTargetIp(host); - proxyMsg.setClientTargetPort(port); + proxyMsg.setClientTargetIp(originHost); + proxyMsg.setClientTargetPort(originPort); }else { // 远程代理 String targetIp = route.getTargetIp(); - String targetPort = route.getTargetPort(); + String targetPort = NormalUsedString.ASTERISK.equals(route.getTargetPort())?String.valueOf(originPort):route.getTargetPort(); proxyMsg.setClientTargetIp(targetIp); proxyMsg.setClientTargetPort(Integer.valueOf(targetPort)); if(RouteType.LOCAL.equals(route.getRouteType())){ diff --git a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettySocks5CommandRequestHandler.java b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettySocks5CommandRequestHandler.java index 45fc4c6..3f87f08 100644 --- a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettySocks5CommandRequestHandler.java +++ b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/handler/NettySocks5CommandRequestHandler.java @@ -19,6 +19,7 @@ import org.framework.lazy.cloud.network.heartbeat.protocol.route.ClientProxyRout import org.framework.lazy.cloud.network.heartbeat.protocol.route.ProxyRoute; import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext; import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType; +import org.wu.framework.core.NormalUsedString; import org.wu.framework.core.utils.ObjectUtils; import java.util.UUID; @@ -51,26 +52,26 @@ public class NettySocks5CommandRequestHandler extends SimpleChannelInboundHandle protected void channelRead0(ChannelHandlerContext ctx, Socks5CommandRequest request) throws Exception { if (request.type() == Socks5CommandType.CONNECT) { - String host = request.dstAddr(); - int port = request.dstPort(); + String originHost = request.dstAddr(); + int originPort = request.dstPort(); Socks5AddressType socks5AddressType = request.dstAddrType(); String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel()); NettyProxyMsg proxyMsg = new NettyProxyMsg(); proxyMsg.setVisitorId(visitorId); - ProxyRoute route = RouteContext.getRoute(host, String.valueOf(port)); + ProxyRoute route = RouteContext.getRoute(originHost, String.valueOf(originPort)); if(ObjectUtils.isEmpty(route)){ // 未查询到路由信息、本地代理 proxyMsg.setType(ProxyMessageType.SOCKS_LOCAL_PROXY); - proxyMsg.setClientTargetIp(host); - proxyMsg.setClientTargetPort(port); + proxyMsg.setClientTargetIp(originHost); + proxyMsg.setClientTargetPort(originPort); }else { // 其他路由代理 String targetIp = route.getTargetIp(); - String targetPort = route.getTargetPort(); + String targetPort = NormalUsedString.ASTERISK.equals(route.getTargetPort())?String.valueOf(originPort):route.getTargetPort(); proxyMsg.setClientTargetIp(targetIp); proxyMsg.setClientTargetPort(Integer.parseInt(targetPort)); if(RouteType.LOCAL.equals(route.getRouteType())){ diff --git a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/ProxyRoute.java b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/ProxyRoute.java index f3a8acb..a326a76 100644 --- a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/ProxyRoute.java +++ b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/ProxyRoute.java @@ -6,17 +6,17 @@ package org.framework.lazy.cloud.network.heartbeat.protocol.route; public interface ProxyRoute { - public String getVirtualIp(); + String getVirtualIp(); - public RouteType getRouteType(); + RouteType getRouteType(); - public String getVirtualPort(); + String getVirtualPort(); - public String getTargetIp(); + String getTargetIp(); - public String getTargetPort(); + String getTargetPort(); }