【fix】 支持本地代理

This commit is contained in:
wujiawei
2025-04-05 13:09:45 +08:00
parent 074ab4f217
commit 9e1da9649e
132 changed files with 1191 additions and 251 deletions

View File

@ -178,6 +178,28 @@ public class NettyProxyMsg {
}
return new String(clientId, StandardCharsets.UTF_8);
}
/**
* 客户端目标地址
*
* @return 客户端目标地址
*/
public String getTargetIpString() {
if (ObjectUtils.isEmpty(clientTargetIp)) {
return null;
}
return new String(clientTargetIp, StandardCharsets.UTF_8);
}
/**
* 客户端目标端口
*
* @return 客户端目标端口
*/
public String getTargetPortString() {
if (ObjectUtils.isEmpty(clientTargetPort)) {
return null;
}
return new String(clientTargetPort, StandardCharsets.UTF_8);
}
public void setClientTargetIp(byte[] clientTargetIp) {
this.clientTargetIp = clientTargetIp;

View File

@ -0,0 +1,25 @@
package org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http;
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.enums.TcpMessageTypeEnums;
/**
* http 本地代理处理
* @param <MSG>
*/
public abstract class AbstractHttpProtocolHandleChannelLocalProxyTypeAdvanced<MSG> extends AbstractHandleChannelTypeAdvanced<NettyProxyMsg> implements HandleChannelTypeAdvanced {
/**
* 是否支持当前类型
*
* @param nettyProxyMsg 通道数据
* @return 布尔类型 是、否
*/
@Override
protected boolean doSupport(NettyProxyMsg nettyProxyMsg) {
return TcpMessageTypeEnums.HTTP_LOCAL_PROXY.getTypeByte() == nettyProxyMsg.getType();
}
}

View File

@ -0,0 +1,25 @@
package org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http;
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.enums.TcpMessageTypeEnums;
/**
* http 远程处理处理
* @param <MSG>
*/
public abstract class AbstractHttpProtocolHandleChannelRemoteProxyTypeAdvanced<MSG> extends AbstractHandleChannelTypeAdvanced<NettyProxyMsg> implements HandleChannelTypeAdvanced {
/**
* 是否支持当前类型
*
* @param nettyProxyMsg 通道数据
* @return 布尔类型 是、否
*/
@Override
protected boolean doSupport(NettyProxyMsg nettyProxyMsg) {
return TcpMessageTypeEnums.HTTP_REMOTE_PROXY.getTypeByte() == nettyProxyMsg.getType();
}
}

View File

@ -1,5 +1,7 @@
package org.framework.lazy.cloud.network.heartbeat.common.constant;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http.client.AbstractHttpClientProtocolHandleChannelLocalProxyTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http.client.AbstractHttpClientProtocolHandleChannelRemoteProxyTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.tcp.AbstractTcpHandleChannelHeartbeatTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.tcp.client.*;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.tcp.server.*;
@ -213,6 +215,31 @@ public class TcpMessageType {
/**
* http 代理 ------------------------------------------------------------------------------------
* 90~120
*/
/**
* http 本地代理
* @see TcpMessageTypeEnums#HTTP_LOCAL_PROXY
* @see AbstractHttpClientProtocolHandleChannelLocalProxyTypeAdvanced
*
*/
public static final byte HTTP_LOCAL_PROXY = TCP_REPORT_CLIENT_PERMEATE_CLIENT_TRANSFER_CLOSE+1;
/**
* http 远程代理
* @see TcpMessageTypeEnums#HTTP_REMOTE_PROXY
* @see AbstractHttpClientProtocolHandleChannelRemoteProxyTypeAdvanced
*
*/
public static final byte HTTP_REMOTE_PROXY = HTTP_LOCAL_PROXY+1;
/**

View File

@ -2,6 +2,8 @@ package org.framework.lazy.cloud.network.heartbeat.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http.client.AbstractHttpClientProtocolHandleChannelLocalProxyTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.protocol.http.client.AbstractHttpClientProtocolHandleChannelRemoteProxyTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.constant.TcpMessageType;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.tcp.AbstractTcpHandleChannelHeartbeatTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.tcp.client.*;
@ -121,7 +123,25 @@ public enum TcpMessageTypeEnums {
* @see AbstractHandleTcpReportClientPermeateClientTransferCloseTypeAdvanced
*/
TCP_REPORT_CLIENT_PERMEATE_CLIENT_TRANSFER_CLOSE(TcpMessageType.TCP_REPORT_CLIENT_PERMEATE_CLIENT_TRANSFER_CLOSE, "TCP 上报客户端渗透客户端通信通道关闭"),
/**
* http本地代理
*
* @see AbstractHttpClientProtocolHandleChannelLocalProxyTypeAdvanced
*/
HTTP_LOCAL_PROXY(TcpMessageType.HTTP_LOCAL_PROXY, "http本地代理"),
/**
* http远程代理
*
* @see AbstractHttpClientProtocolHandleChannelRemoteProxyTypeAdvanced
*/
HTTP_REMOTE_PROXY(TcpMessageType.HTTP_REMOTE_PROXY, "http远程代理"),
/**
* 下发 客户端接收连接成功通知
* @see AbstractHandleTcpDistributeConnectSuccessNotificationTypeAdvancedHandle
*/
TCP_DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION(TcpMessageType.TCP_DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION, "TCP 下发 客户端接收连接成功通知"),