mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2025-06-06 13:27:55 +08:00
【fix】客户端渗透客户端编码
This commit is contained in:
parent
b4daa3ba70
commit
2c139c9ae1
@ -0,0 +1,59 @@
|
||||
package org.framework.lazy.cloud.network.heartbeat.client.netty;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.InternalNetworkPermeate;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class InternalNetworkClientPermeateClientVisitor implements InternalNetworkPermeate {
|
||||
|
||||
/**
|
||||
* 当前客户端ID
|
||||
*/
|
||||
private String fromClientId;
|
||||
/**
|
||||
* 目标客户端ID
|
||||
*/
|
||||
private String toClientId;
|
||||
/**
|
||||
* 目标地址
|
||||
*/
|
||||
private String targetIp;
|
||||
|
||||
/**
|
||||
* 目标端口
|
||||
*/
|
||||
private Integer targetPort;
|
||||
|
||||
|
||||
/**
|
||||
* 访问端口
|
||||
*/
|
||||
private Integer visitorPort;
|
||||
|
||||
/**
|
||||
* 流量适配器
|
||||
*/
|
||||
private ChannelFlowAdapter channelFlowAdapter;
|
||||
/**
|
||||
* 服务端地址信息
|
||||
*/
|
||||
private NettyClientProperties nettyClientProperties;
|
||||
|
||||
/**
|
||||
* 通道处理器
|
||||
*/
|
||||
private List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList;
|
||||
|
||||
|
||||
/**
|
||||
* 访客ID
|
||||
*/
|
||||
private String visitorId;
|
||||
}
|
@ -5,11 +5,9 @@ import io.netty.channel.Channel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyClientPermeateClientVisitorSocket;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyClientPermeateServerVisitorSocket;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientPermeateClientInitTypeAdvanced;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientPermeateServerInitTypeAdvanced;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums;
|
||||
import org.wu.framework.spring.utils.SpringContextHolder;
|
||||
|
||||
@ -34,22 +32,24 @@ public class ClientHandleDistributeClientPermeateClientInitTypeAdvanced extends
|
||||
@Override
|
||||
public void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) {
|
||||
// 初始化 客户端渗透服务端socket
|
||||
byte[] clientIdBytes = nettyProxyMsg.getClientId();
|
||||
byte[] fromClientIdBytes = nettyProxyMsg.getClientId();
|
||||
byte[] visitorPort = nettyProxyMsg.getVisitorPort();
|
||||
byte[] clientTargetIp = nettyProxyMsg.getClientTargetIp();
|
||||
byte[] clientTargetPort = nettyProxyMsg.getClientTargetPort();
|
||||
byte[] toClientIdBytes = nettyProxyMsg.getData();
|
||||
|
||||
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList = new ArrayList<>(SpringContextHolder.getApplicationContext().getBeansOfType(HandleChannelTypeAdvanced.class).values());
|
||||
// ChannelFlowAdapter channelFlowAdapter = SpringContextHolder.getBean(ChannelFlowAdapter.class);
|
||||
NettyClientProperties nettyClientProperties = SpringContextHolder.getBean(NettyClientProperties.class);
|
||||
NettyClientPermeateClientVisitorSocket nettyClientPermeateClientVisitorSocket =
|
||||
NettyClientPermeateClientVisitorSocket.NettyClientPermeateClientVisitorSocketBuilder.builder()
|
||||
.builderClientId(new String(clientIdBytes))
|
||||
.builderClientId(new String(fromClientIdBytes))
|
||||
.builderClientTargetIp(new String(clientTargetIp))
|
||||
.builderClientTargetPort(Integer.parseInt(new String(clientTargetPort)))
|
||||
.builderVisitorPort(Integer.parseInt(new String(visitorPort)))
|
||||
.builderNettyClientProperties(nettyClientProperties)
|
||||
// .builderChannelFlowAdapter(channelFlowAdapter)
|
||||
.builderToClientId(new String(toClientIdBytes))
|
||||
.builderHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList)
|
||||
|
||||
.build();
|
||||
|
@ -5,17 +5,16 @@ import io.netty.channel.ChannelDuplexHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPermeateServerVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkClientPermeateClientVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.handler.NettyClientPermeateClientVisitorHandler;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.handler.NettyClientPermeateServerVisitorHandler;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.filter.DebugChannelInitializer;
|
||||
|
||||
public class NettyClientPermeateClientVisitorFilter extends DebugChannelInitializer<SocketChannel> {
|
||||
|
||||
private final InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor;
|
||||
private final InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor;
|
||||
|
||||
public NettyClientPermeateClientVisitorFilter(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
||||
this.internalNetworkPermeateServerVisitor = internalNetworkPermeateServerVisitor;
|
||||
public NettyClientPermeateClientVisitorFilter(InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor) {
|
||||
this.internalNetworkClientPermeateClientVisitor = internalNetworkClientPermeateClientVisitor;
|
||||
|
||||
}
|
||||
|
||||
@ -32,6 +31,6 @@ public class NettyClientPermeateClientVisitorFilter extends DebugChannelInitiali
|
||||
protected void initChannel0(SocketChannel ch) throws Exception {
|
||||
ChannelPipeline pipeline = ch.pipeline();
|
||||
pipeline.addLast(new ChannelDuplexHandler());
|
||||
pipeline.addLast(new NettyClientPermeateClientVisitorHandler(internalNetworkPermeateServerVisitor));
|
||||
pipeline.addLast(new NettyClientPermeateClientVisitorHandler(internalNetworkClientPermeateClientVisitor));
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import io.netty.channel.ChannelOption;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPermeateServerVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkClientPermeateClientVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.advanced.ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyClientTransferClientSocket;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyClientTransferServerSocket;
|
||||
@ -23,11 +23,11 @@ import java.util.UUID;
|
||||
|
||||
@Slf4j
|
||||
public class NettyClientPermeateClientVisitorHandler extends SimpleChannelInboundHandler<ByteBuf> {
|
||||
private final InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor;
|
||||
private final InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor;
|
||||
// private final NettyChannelPool nettyChannelPool = new DefaultNettyChannelPool(10);
|
||||
|
||||
public NettyClientPermeateClientVisitorHandler(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
||||
this.internalNetworkPermeateServerVisitor = internalNetworkPermeateServerVisitor;
|
||||
public NettyClientPermeateClientVisitorHandler(InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor) {
|
||||
this.internalNetworkClientPermeateClientVisitor = internalNetworkClientPermeateClientVisitor;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,11 +51,11 @@ public class NettyClientPermeateClientVisitorHandler extends SimpleChannelInboun
|
||||
// 当前通道绑定访客ID
|
||||
ChannelAttributeKeyUtils.buildVisitorId(visitorChannel, visitorId);
|
||||
|
||||
internalNetworkPermeateServerVisitor.setVisitorId(visitorId);
|
||||
internalNetworkClientPermeateClientVisitor.setVisitorId(visitorId);
|
||||
// 判断是否有可用的通道 如果没有创建新的通道
|
||||
// Channel transferChannel = nettyChannelPool.availableChannel(visitorId);
|
||||
// 创建访客连接客户端通道
|
||||
NettyClientTransferClientSocket.buildTransferServer(internalNetworkPermeateServerVisitor);
|
||||
NettyClientTransferClientSocket.buildTransferServer(internalNetworkClientPermeateClientVisitor);
|
||||
log.info("客户端渗透客户端访客端口连接成功了");
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
@ -74,7 +74,7 @@ public class NettyClientPermeateClientVisitorHandler extends SimpleChannelInboun
|
||||
log.debug("【客户端渗透客户端】访客端口成功接收数据:{}", new String(bytes));
|
||||
|
||||
// 使用访客的通信通道
|
||||
Integer visitorPort = internalNetworkPermeateServerVisitor.getVisitorPort();
|
||||
Integer visitorPort = internalNetworkClientPermeateClientVisitor.getVisitorPort();
|
||||
NettyProxyMsg nettyProxyMsg = new NettyProxyMsg();
|
||||
nettyProxyMsg.setType(MessageType.REPORT_CLIENT_TRANSFER_CLIENT_REQUEST);
|
||||
nettyProxyMsg.setVisitorId(visitorId);
|
||||
|
@ -7,7 +7,7 @@ import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPermeateServerVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkClientPermeateClientVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.filter.NettyClientPermeateClientVisitorFilter;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyClientVisitorContext;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyVisitorPortContext;
|
||||
@ -139,6 +139,10 @@ public class NettyClientPermeateClientVisitorSocket implements PermeateVisitorSo
|
||||
* 访客ID
|
||||
*/
|
||||
private String visitorId;
|
||||
/**
|
||||
* 目标客户端ID
|
||||
*/
|
||||
private String toClientId;
|
||||
|
||||
/**
|
||||
* 流量适配器
|
||||
@ -243,6 +247,16 @@ public class NettyClientPermeateClientVisitorSocket implements PermeateVisitorSo
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 目标客户端ID
|
||||
*
|
||||
* @param toClientId 目标客户端ID
|
||||
* @return 当前对象
|
||||
*/
|
||||
public NettyClientPermeateClientVisitorSocketBuilder builderToClientId(String toClientId) {
|
||||
this.toClientId = toClientId;
|
||||
return this;
|
||||
}
|
||||
public NettyClientPermeateClientVisitorSocket build() {
|
||||
if (clientTargetIp == null) {
|
||||
throw new IllegalArgumentException("clientTargetIp must not null");
|
||||
@ -253,17 +267,19 @@ public class NettyClientPermeateClientVisitorSocket implements PermeateVisitorSo
|
||||
if (visitorPort == null) {
|
||||
throw new IllegalArgumentException("visitorPort must not null");
|
||||
}
|
||||
InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor = new InternalNetworkPermeateServerVisitor();
|
||||
InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor = new InternalNetworkClientPermeateClientVisitor();
|
||||
|
||||
internalNetworkPermeateServerVisitor.setTargetIp(clientTargetIp);
|
||||
internalNetworkPermeateServerVisitor.setTargetPort(clientTargetPort);
|
||||
internalNetworkPermeateServerVisitor.setVisitorPort(visitorPort);
|
||||
internalNetworkPermeateServerVisitor.setNettyClientProperties(nettyClientProperties);
|
||||
internalNetworkPermeateServerVisitor.setChannelFlowAdapter(channelFlowAdapter);
|
||||
internalNetworkPermeateServerVisitor.setHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList);
|
||||
internalNetworkClientPermeateClientVisitor.setFromClientId(nettyClientProperties.getClientId());
|
||||
internalNetworkClientPermeateClientVisitor.setToClientId(toClientId);
|
||||
internalNetworkClientPermeateClientVisitor.setTargetIp(clientTargetIp);
|
||||
internalNetworkClientPermeateClientVisitor.setTargetPort(clientTargetPort);
|
||||
internalNetworkClientPermeateClientVisitor.setVisitorPort(visitorPort);
|
||||
internalNetworkClientPermeateClientVisitor.setNettyClientProperties(nettyClientProperties);
|
||||
internalNetworkClientPermeateClientVisitor.setChannelFlowAdapter(channelFlowAdapter);
|
||||
internalNetworkClientPermeateClientVisitor.setHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList);
|
||||
|
||||
|
||||
NettyClientPermeateClientVisitorFilter visitorFilter = new NettyClientPermeateClientVisitorFilter(internalNetworkPermeateServerVisitor);
|
||||
NettyClientPermeateClientVisitorFilter visitorFilter = new NettyClientPermeateClientVisitorFilter(internalNetworkClientPermeateClientVisitor);
|
||||
return new NettyClientPermeateClientVisitorSocket(visitorFilter, clientId, visitorPort);
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import io.netty.channel.socket.nio.NioSocketChannel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPermeateServerVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkClientPermeateClientVisitor;
|
||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.filter.NettyClientPermeateTransferFilter;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.MessageType;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyCommunicationIdContext;
|
||||
@ -28,8 +28,8 @@ public class NettyClientTransferClientSocket {
|
||||
/**
|
||||
* 连接服务端通信通道
|
||||
*/
|
||||
public static void buildTransferServer(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
||||
newTransferConnect2Server(internalNetworkPermeateServerVisitor);
|
||||
public static void buildTransferServer(InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor) {
|
||||
newTransferConnect2Server(internalNetworkClientPermeateClientVisitor);
|
||||
}
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ public class NettyClientTransferClientSocket {
|
||||
* <p>
|
||||
* internalNetworkPermeateServerVisitor
|
||||
*/
|
||||
protected static void newTransferConnect2Server(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
||||
protected static void newTransferConnect2Server(InternalNetworkClientPermeateClientVisitor internalNetworkClientPermeateClientVisitor) {
|
||||
|
||||
Bootstrap bootstrap = new Bootstrap();
|
||||
bootstrap.group(eventLoopGroup)
|
||||
@ -55,20 +55,21 @@ public class NettyClientTransferClientSocket {
|
||||
|
||||
.option(ChannelOption.WRITE_BUFFER_WATER_MARK, new WriteBufferWaterMark(1024 * 1024, 1024 * 1024 * 2))
|
||||
|
||||
.handler(new NettyClientPermeateTransferFilter(new ChannelTypeAdapter(internalNetworkPermeateServerVisitor.getHandleChannelTypeAdvancedList())))
|
||||
.handler(new NettyClientPermeateTransferFilter(new ChannelTypeAdapter(internalNetworkClientPermeateClientVisitor.getHandleChannelTypeAdvancedList())))
|
||||
;
|
||||
NettyClientProperties nettyClientProperties = internalNetworkPermeateServerVisitor.getNettyClientProperties();
|
||||
NettyClientProperties nettyClientProperties = internalNetworkClientPermeateClientVisitor.getNettyClientProperties();
|
||||
String inetHost = nettyClientProperties.getInetHost();
|
||||
int inetPort = nettyClientProperties.getInetPort();
|
||||
// local client id
|
||||
|
||||
String clientId = nettyClientProperties.getClientId();
|
||||
|
||||
String targetIp = internalNetworkPermeateServerVisitor.getTargetIp();
|
||||
Integer targetPort = internalNetworkPermeateServerVisitor.getTargetPort();
|
||||
String targetIp = internalNetworkClientPermeateClientVisitor.getTargetIp();
|
||||
Integer targetPort = internalNetworkClientPermeateClientVisitor.getTargetPort();
|
||||
|
||||
String visitorId = internalNetworkPermeateServerVisitor.getVisitorId();
|
||||
Integer visitorPort = internalNetworkPermeateServerVisitor.getVisitorPort();
|
||||
String visitorId = internalNetworkClientPermeateClientVisitor.getVisitorId();
|
||||
Integer visitorPort = internalNetworkClientPermeateClientVisitor.getVisitorPort();
|
||||
String toClientId = internalNetworkClientPermeateClientVisitor.getToClientId();
|
||||
|
||||
// 客户端新建访客通道 连接服务端IP:{},连接服务端端口:{}
|
||||
log.info("Client creates a new visitor channel to connect to server IP: {}, connecting to server port: {}", inetHost, inetPort);
|
||||
@ -83,7 +84,7 @@ public class NettyClientTransferClientSocket {
|
||||
NettyProxyMsg myMsg = new NettyProxyMsg();
|
||||
myMsg.setType(MessageType.REPORT_CLIENT_TRANSFER_CLIENT_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL);
|
||||
// other clientId
|
||||
myMsg.setClientId(clientId);
|
||||
myMsg.setClientId(toClientId);
|
||||
myMsg.setVisitorPort(visitorPort);
|
||||
myMsg.setClientTargetIp(targetIp);
|
||||
myMsg.setClientTargetPort(targetPort);
|
||||
@ -105,7 +106,7 @@ public class NettyClientTransferClientSocket {
|
||||
log.info("每隔2s重连....");
|
||||
// 离线
|
||||
channel.eventLoop().schedule(() -> {
|
||||
newTransferConnect2Server(internalNetworkPermeateServerVisitor);
|
||||
newTransferConnect2Server(internalNetworkClientPermeateClientVisitor);
|
||||
}, 2, TimeUnit.SECONDS);
|
||||
}
|
||||
});
|
||||
|
@ -3,10 +3,7 @@ package org.framework.lazy.cloud.network.heartbeat.server.config;
|
||||
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.netty.advanced.*;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyClientStatsChangeApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkClientPermeateServerMappingApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkPenetrationMappingApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyNettyClientBlacklistApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.*;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Role;
|
||||
@ -43,11 +40,13 @@ public class HeartbeatServerConfiguration {
|
||||
LazyClientStatsChangeApplication lazyClientStatsChangeApplication,
|
||||
LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication,
|
||||
LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication,
|
||||
LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication) {
|
||||
LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication,
|
||||
LazyInternalNetworkClientPermeateClientMappingApplication lazyInternalNetworkClientPermeateClientMappingApplication) {
|
||||
return new ServerHandleClientConnectSuccessTypeAdvanced(lazyClientStatsChangeApplication,
|
||||
lazyNettyClientBlacklistApplication,
|
||||
lazyInternalNetworkPenetrationMappingApplication,
|
||||
lazyInternalNetworkClientPermeateServerMappingApplication);
|
||||
lazyInternalNetworkClientPermeateServerMappingApplication,
|
||||
lazyInternalNetworkClientPermeateClientMappingApplication);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,11 +9,10 @@ import org.framework.lazy.cloud.network.heartbeat.common.MessageType;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleClientConnectSuccessTypeAdvanced;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyClientStatsChangeApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkClientPermeateServerMappingApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkPenetrationMappingApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyNettyClientBlacklistApplication;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.*;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMappingQueryListCommand;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.client.permeate.server.mapping.LazyInternalNetworkClientPermeateServerMappingQueryListCommand;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyInternalNetworkClientPermeateClientMappingDTO;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyInternalNetworkClientPermeateServerMappingDTO;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.blacklist.LazyNettyClientBlacklist;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -34,12 +33,14 @@ public class ServerHandleClientConnectSuccessTypeAdvanced extends AbstractHandle
|
||||
private final LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication;
|
||||
private final LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication;
|
||||
private final LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication;
|
||||
private final LazyInternalNetworkClientPermeateClientMappingApplication lazyInternalNetworkClientPermeateClientMappingApplication;
|
||||
|
||||
public ServerHandleClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication, LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication) {
|
||||
public ServerHandleClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication, LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication, LazyInternalNetworkClientPermeateClientMappingApplication lazyInternalNetworkClientPermeateClientMappingApplication) {
|
||||
this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication;
|
||||
this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication;
|
||||
this.lazyInternalNetworkPenetrationMappingApplication = lazyInternalNetworkPenetrationMappingApplication;
|
||||
this.lazyInternalNetworkClientPermeateServerMappingApplication = lazyInternalNetworkClientPermeateServerMappingApplication;
|
||||
this.lazyInternalNetworkClientPermeateClientMappingApplication = lazyInternalNetworkClientPermeateClientMappingApplication;
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +122,27 @@ public class ServerHandleClientConnectSuccessTypeAdvanced extends AbstractHandle
|
||||
|
||||
|
||||
// 查询客户端渗透客户端信息
|
||||
LazyInternalNetworkClientPermeateClientMappingQueryListCommand lazyInternalNetworkClientPermeateClientMappingQueryListCommand = new LazyInternalNetworkClientPermeateClientMappingQueryListCommand();
|
||||
lazyInternalNetworkClientPermeateClientMappingQueryListCommand.setFromClientId(clientId);
|
||||
lazyInternalNetworkClientPermeateClientMappingQueryListCommand.setIsDeleted(false);
|
||||
lazyInternalNetworkClientPermeateClientMappingApplication.findList(lazyInternalNetworkClientPermeateClientMappingQueryListCommand)
|
||||
.accept(lazyInternalNetworkClientPermeateServerMappingDTOS -> {
|
||||
for (LazyInternalNetworkClientPermeateClientMappingDTO lazyInternalNetworkClientPermeateClientMappingDTO : lazyInternalNetworkClientPermeateServerMappingDTOS) {
|
||||
|
||||
String permeateTargetIp = lazyInternalNetworkClientPermeateClientMappingDTO.getPermeateTargetIp();
|
||||
Integer permeateTargetPort = lazyInternalNetworkClientPermeateClientMappingDTO.getPermeateTargetPort();
|
||||
Integer visitorPort = lazyInternalNetworkClientPermeateClientMappingDTO.getVisitorPort();
|
||||
String toClientId = lazyInternalNetworkClientPermeateClientMappingDTO.getToClientId();
|
||||
NettyProxyMsg nettyMsg = new NettyProxyMsg();
|
||||
nettyMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_CLIENT_INIT);
|
||||
nettyMsg.setClientTargetIp(permeateTargetIp);
|
||||
nettyMsg.setClientTargetPort(permeateTargetPort);
|
||||
nettyMsg.setVisitorPort(visitorPort);
|
||||
nettyMsg.setClientId(clientId);
|
||||
nettyMsg.setData(toClientId.getBytes(StandardCharsets.UTF_8));
|
||||
newChannel.writeAndFlush(nettyMsg);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,8 @@ import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMappingQueryOneCommand;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.assembler.LazyInternalNetworkClientPermeateClientMappingDTOAssembler;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyInternalNetworkClientPermeateClientMappingDTO;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.stream.Collectors;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMappingRepository;
|
||||
@ -193,7 +195,8 @@ public class LazyInternalNetworkClientPermeateClientMappingApplicationImpl imple
|
||||
nettyMsg.setClientTargetIp(permeateTargetIp);
|
||||
nettyMsg.setClientTargetPort(permeateTargetPort);
|
||||
nettyMsg.setVisitorPort(visitorPort);
|
||||
nettyMsg.setClientId(toClientId);
|
||||
nettyMsg.setClientId(fromClientId);
|
||||
nettyMsg.setData(toClientId.getBytes(StandardCharsets.UTF_8));
|
||||
channel.writeAndFlush(nettyMsg);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user