mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2025-06-06 21:37:56 +08:00
[fix] 统一使用next 通道进行数据处理
This commit is contained in:
parent
37d9065c5a
commit
7028e001ea
@ -2,13 +2,13 @@ package org.framework.lazy.cloud.network.heartbeat.client.config;
|
|||||||
|
|
||||||
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.advanced.*;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.advanced.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.advanced.*;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.event.ClientChangeEvent;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Role;
|
import org.springframework.context.annotation.Role;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.event.ClientChangeEvent;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -55,6 +55,7 @@ public class HeartbeatClientConfiguration {
|
|||||||
return new ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced();
|
return new ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced handleDistributeSingleClientRealCloseVisitorTypeAdvanced() {
|
public ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced handleDistributeSingleClientRealCloseVisitorTypeAdvanced() {
|
||||||
return new ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced();
|
return new ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced();
|
||||||
@ -90,10 +91,20 @@ public class HeartbeatClientConfiguration {
|
|||||||
return new HandleDistributeStagingOpenedTypeAdvanced();
|
return new HandleDistributeStagingOpenedTypeAdvanced();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理 客户端渗透服务端init信息
|
||||||
|
*
|
||||||
|
* @return ClientHandleDistributeClientPermeateServerInitTypeAdvanced
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public ClientHandleDistributeClientPermeateServerInitTypeAdvanced clientHandleDistributeClientPermeateServerInitTypeAdvanced(NettyClientProperties nettyClientProperties) {
|
||||||
|
return new ClientHandleDistributeClientPermeateServerInitTypeAdvanced(nettyClientProperties);
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ClientHandleDistributeSingleClientRealConnectTypeAdvanced clientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties,
|
public ClientHandleDistributeSingleClientRealConnectTypeAdvanced clientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties,
|
||||||
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList) {
|
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList) {
|
||||||
return new ClientHandleDistributeSingleClientRealConnectTypeAdvanced(nettyClientProperties, handleChannelTypeAdvancedList);
|
return new ClientHandleDistributeSingleClientRealConnectTypeAdvanced(nettyClientProperties, handleChannelTypeAdvancedList);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,68 @@
|
|||||||
|
package org.framework.lazy.cloud.network.heartbeat.client.netty.advanced;
|
||||||
|
|
||||||
|
|
||||||
|
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.NettyClientPermeateServerVisitorSocket;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||||
|
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.inner.lazy.orm.spring.SpringConnectionHandler;
|
||||||
|
import org.wu.framework.spring.utils.SpringContextHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客户端渗透服务端init信息
|
||||||
|
*
|
||||||
|
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class ClientHandleDistributeClientPermeateServerInitTypeAdvanced extends AbstractHandleDistributeClientPermeateServerInitTypeAdvanced<NettyProxyMsg> {
|
||||||
|
|
||||||
|
private final NettyClientProperties nettyClientProperties;
|
||||||
|
|
||||||
|
public ClientHandleDistributeClientPermeateServerInitTypeAdvanced(NettyClientProperties nettyClientProperties) {
|
||||||
|
this.nettyClientProperties = nettyClientProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理当前数据
|
||||||
|
*
|
||||||
|
* @param channel 当前通道
|
||||||
|
* @param nettyProxyMsg 通道数据
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) {
|
||||||
|
// 初始化 客户端渗透服务端socket
|
||||||
|
byte[] clientIdBytes = nettyProxyMsg.getClientId();
|
||||||
|
byte[] visitorPort = nettyProxyMsg.getVisitorPort();
|
||||||
|
byte[] clientTargetIp = nettyProxyMsg.getClientTargetIp();
|
||||||
|
byte[] clientTargetPort = nettyProxyMsg.getClientTargetPort();
|
||||||
|
|
||||||
|
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList = new ArrayList<>(SpringContextHolder.getApplicationContext().getBeansOfType(HandleChannelTypeAdvanced.class).values());
|
||||||
|
// ChannelFlowAdapter channelFlowAdapter = SpringContextHolder.getBean(ChannelFlowAdapter.class);
|
||||||
|
NettyClientPermeateServerVisitorSocket nettyClientPermeateServerVisitorSocket = NettyClientPermeateServerVisitorSocket.NettyVisitorSocketBuilder.builder()
|
||||||
|
.builderClientId(new String(clientIdBytes))
|
||||||
|
.builderClientTargetIp(new String(clientTargetIp))
|
||||||
|
.builderClientTargetPort(Integer.parseInt(new String(clientTargetPort)))
|
||||||
|
.builderVisitorPort(Integer.parseInt(new String(visitorPort)))
|
||||||
|
.builderNettyClientProperties(nettyClientProperties)
|
||||||
|
// .builderChannelFlowAdapter(channelFlowAdapter)
|
||||||
|
.builderHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList)
|
||||||
|
|
||||||
|
.build();
|
||||||
|
try {
|
||||||
|
nettyClientPermeateServerVisitorSocket.start();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -10,6 +10,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
|||||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext;
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums;
|
import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,7 +37,8 @@ public class ClientHandleDistributeClientTransferServerPermeateChannelConnection
|
|||||||
byte[] msgVisitorId = nettyProxyMsg.getVisitorId();
|
byte[] msgVisitorId = nettyProxyMsg.getVisitorId();
|
||||||
String visitorId = new String(msgVisitorId);
|
String visitorId = new String(msgVisitorId);
|
||||||
Channel visitor = NettyRealIdContext.getReal(visitorId);
|
Channel visitor = NettyRealIdContext.getReal(visitorId);
|
||||||
visitor.config().setOption(ChannelOption.AUTO_READ, true);
|
Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(channel);
|
||||||
|
nextChannel.config().setOption(ChannelOption.AUTO_READ, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,14 +23,10 @@ import java.util.UUID;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboundHandler<ByteBuf> {
|
public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboundHandler<ByteBuf> {
|
||||||
private final InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor;
|
private final InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor;
|
||||||
// private final ChannelFlowAdapter channelFlowAdapter;// 流量适配器
|
|
||||||
// private final NettyChannelPool nettyChannelPool = new DefaultNettyChannelPool(10);
|
// private final NettyChannelPool nettyChannelPool = new DefaultNettyChannelPool(10);
|
||||||
|
|
||||||
public NettyClientPermeateServerVisitorHandler(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
public NettyClientPermeateServerVisitorHandler(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
|
||||||
this.internalNetworkPermeateServerVisitor = internalNetworkPermeateServerVisitor;
|
this.internalNetworkPermeateServerVisitor = internalNetworkPermeateServerVisitor;
|
||||||
|
|
||||||
// this.channelFlowAdapter = channelFlowAdapter;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,7 +55,7 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun
|
|||||||
// Channel transferChannel = nettyChannelPool.availableChannel(visitorId);
|
// Channel transferChannel = nettyChannelPool.availableChannel(visitorId);
|
||||||
// 创建访客连接服务端通道
|
// 创建访客连接服务端通道
|
||||||
NettyClientTransferServerSocket.buildTransferServer(internalNetworkPermeateServerVisitor);
|
NettyClientTransferServerSocket.buildTransferServer(internalNetworkPermeateServerVisitor);
|
||||||
log.info("服务端访客端口连接成功了");
|
log.info("客户端渗透服务端访客端口连接成功了");
|
||||||
super.channelActive(ctx);
|
super.channelActive(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,12 +70,14 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun
|
|||||||
byte[] bytes = new byte[buf.readableBytes()];
|
byte[] bytes = new byte[buf.readableBytes()];
|
||||||
buf.readBytes(bytes);
|
buf.readBytes(bytes);
|
||||||
// 获取客户端通道,而后进行数据下发
|
// 获取客户端通道,而后进行数据下发
|
||||||
log.debug("【服务端】访客端口成功接收数据:{}", new String(bytes));
|
log.debug("【客户端渗透服务端】访客端口成功接收数据:{}", new String(bytes));
|
||||||
|
|
||||||
// 使用访客的通信通道
|
// 使用访客的通信通道
|
||||||
|
Integer visitorPort = internalNetworkPermeateServerVisitor.getVisitorPort();
|
||||||
NettyProxyMsg nettyProxyMsg = new NettyProxyMsg();
|
NettyProxyMsg nettyProxyMsg = new NettyProxyMsg();
|
||||||
nettyProxyMsg.setType(MessageType.REPORT_CLIENT_TRANSFER);
|
nettyProxyMsg.setType(MessageType.REPORT_CLIENT_TRANSFER);
|
||||||
nettyProxyMsg.setVisitorId(visitorId);
|
nettyProxyMsg.setVisitorId(visitorId);
|
||||||
|
nettyProxyMsg.setVisitorPort(visitorPort);
|
||||||
nettyProxyMsg.setData(bytes);
|
nettyProxyMsg.setData(bytes);
|
||||||
nextChannel.writeAndFlush(nettyProxyMsg);
|
nextChannel.writeAndFlush(nettyProxyMsg);
|
||||||
// 处理访客流量
|
// 处理访客流量
|
||||||
@ -91,7 +89,7 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun
|
|||||||
// .flow(bytes.length)
|
// .flow(bytes.length)
|
||||||
// .build();
|
// .build();
|
||||||
// channelFlowAdapter.asyncHandler(visitorChannel, serverChannelFlow);
|
// channelFlowAdapter.asyncHandler(visitorChannel, serverChannelFlow);
|
||||||
log.debug("服务端访客端口成功发送数据了");
|
log.debug("【客户端渗透服务端】访客端口成功发送数据了");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -119,7 +117,7 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun
|
|||||||
// 关闭 访客通信通道、访客真实通道
|
// 关闭 访客通信通道、访客真实通道
|
||||||
NettyRealIdContext.clear(visitorId);
|
NettyRealIdContext.clear(visitorId);
|
||||||
NettyCommunicationIdContext.clear(visitorId);
|
NettyCommunicationIdContext.clear(visitorId);
|
||||||
log.warn("服务端访客端口断开连接");
|
log.warn("【客户端渗透服务端】访客端口断开连接");
|
||||||
super.channelInactive(ctx);
|
super.channelInactive(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,13 +165,14 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun
|
|||||||
String visitorId = ChannelAttributeKeyUtils.getVisitorId(channel);
|
String visitorId = ChannelAttributeKeyUtils.getVisitorId(channel);
|
||||||
// 使用通信通道 下发关闭访客
|
// 使用通信通道 下发关闭访客
|
||||||
Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId);
|
Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId);
|
||||||
if (visitorChannel != null) {
|
Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel());
|
||||||
|
if (nextChannel != null) {
|
||||||
// 下发关闭访客
|
// 下发关闭访客
|
||||||
NettyProxyMsg closeRealClient = new NettyProxyMsg();
|
NettyProxyMsg closeRealClient = new NettyProxyMsg();
|
||||||
closeRealClient.setType(MessageType.DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT_AUTO_READ);
|
closeRealClient.setType(MessageType.DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT_AUTO_READ);
|
||||||
closeRealClient.setClientId(clientId);
|
closeRealClient.setClientId(clientId);
|
||||||
closeRealClient.setVisitorId(visitorId);
|
closeRealClient.setVisitorId(visitorId);
|
||||||
visitorChannel.writeAndFlush(closeRealClient);
|
nextChannel.writeAndFlush(closeRealClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.close();
|
ctx.close();
|
||||||
|
@ -12,8 +12,10 @@ import org.framework.lazy.cloud.network.heartbeat.client.netty.filter.NettyClien
|
|||||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyClientVisitorContext;
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyClientVisitorContext;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyVisitorPortContext;
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyVisitorPortContext;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内网穿透 客户端渗透服务端通道
|
* 内网穿透 客户端渗透服务端通道
|
||||||
@ -143,6 +145,11 @@ public class NettyClientPermeateServerVisitorSocket {
|
|||||||
*/
|
*/
|
||||||
private NettyClientProperties nettyClientProperties;
|
private NettyClientProperties nettyClientProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理器
|
||||||
|
*/
|
||||||
|
private List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList;
|
||||||
|
|
||||||
public static NettyVisitorSocketBuilder builder() {
|
public static NettyVisitorSocketBuilder builder() {
|
||||||
return new NettyVisitorSocketBuilder();
|
return new NettyVisitorSocketBuilder();
|
||||||
}
|
}
|
||||||
@ -200,6 +207,15 @@ public class NettyClientPermeateServerVisitorSocket {
|
|||||||
public NettyVisitorSocketBuilder builderChannelFlowAdapter(ChannelFlowAdapter channelFlowAdapter) {
|
public NettyVisitorSocketBuilder builderChannelFlowAdapter(ChannelFlowAdapter channelFlowAdapter) {
|
||||||
this.channelFlowAdapter = channelFlowAdapter;
|
this.channelFlowAdapter = channelFlowAdapter;
|
||||||
return this;
|
return this;
|
||||||
|
} /**
|
||||||
|
* 绑定流量适配器
|
||||||
|
*
|
||||||
|
* @param handleChannelTypeAdvancedList 流量适配器
|
||||||
|
* @return 当前对象
|
||||||
|
*/
|
||||||
|
public NettyVisitorSocketBuilder builderHandleChannelTypeAdvancedList(List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList) {
|
||||||
|
this.handleChannelTypeAdvancedList = handleChannelTypeAdvancedList;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 服务端地址信息
|
* 服务端地址信息
|
||||||
@ -238,6 +254,9 @@ public class NettyClientPermeateServerVisitorSocket {
|
|||||||
internalNetworkPermeateServerVisitor.setTargetIp(clientTargetIp);
|
internalNetworkPermeateServerVisitor.setTargetIp(clientTargetIp);
|
||||||
internalNetworkPermeateServerVisitor.setTargetPort(clientTargetPort);
|
internalNetworkPermeateServerVisitor.setTargetPort(clientTargetPort);
|
||||||
internalNetworkPermeateServerVisitor.setVisitorPort(visitorPort);
|
internalNetworkPermeateServerVisitor.setVisitorPort(visitorPort);
|
||||||
|
internalNetworkPermeateServerVisitor.setNettyClientProperties(nettyClientProperties);
|
||||||
|
internalNetworkPermeateServerVisitor.setChannelFlowAdapter(channelFlowAdapter);
|
||||||
|
internalNetworkPermeateServerVisitor.setHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList);
|
||||||
|
|
||||||
|
|
||||||
NettyClientPermeateServerVisitorFilter visitorFilter = new NettyClientPermeateServerVisitorFilter(internalNetworkPermeateServerVisitor);
|
NettyClientPermeateServerVisitorFilter visitorFilter = new NettyClientPermeateServerVisitorFilter(internalNetworkPermeateServerVisitor);
|
||||||
|
@ -105,6 +105,14 @@ public class MessageType {
|
|||||||
*/
|
*/
|
||||||
public static final byte REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL = 0X12;
|
public static final byte REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL = 0X12;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上报 客户端渗透服务端init信息
|
||||||
|
*
|
||||||
|
* @see MessageTypeEnums#REPORT_CLIENT_PERMEATE_SERVER_INIT
|
||||||
|
* @see AbstractHandleReportClientPermeateServerInitTypeAdvanced
|
||||||
|
*/
|
||||||
|
public static final byte REPORT_CLIENT_PERMEATE_SERVER_INIT = 0X13;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发 客户端接收连接成功通知
|
* 下发 客户端接收连接成功通知
|
||||||
*
|
*
|
||||||
@ -197,4 +205,12 @@ public class MessageType {
|
|||||||
* @see AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
* @see AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
||||||
*/
|
*/
|
||||||
public static final byte DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL = -0X12;
|
public static final byte DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL = -0X12;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发 客户端渗透服务端init信息
|
||||||
|
*
|
||||||
|
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT
|
||||||
|
* @see AbstractHandleDistributeClientPermeateServerInitTypeAdvanced
|
||||||
|
*/
|
||||||
|
public static final byte DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT = -0X13;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package org.framework.lazy.cloud.network.heartbeat.common.advanced.client;
|
||||||
|
|
||||||
|
|
||||||
|
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.MessageTypeEnums;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发 客户端渗透服务端init信息
|
||||||
|
*
|
||||||
|
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT
|
||||||
|
*/
|
||||||
|
public abstract class AbstractHandleDistributeClientPermeateServerInitTypeAdvanced<MSG> extends AbstractHandleChannelTypeAdvanced<NettyProxyMsg> implements HandleChannelTypeAdvanced {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支持当前类型
|
||||||
|
*
|
||||||
|
* @param msg 通道数据
|
||||||
|
* @return 布尔类型 是、否
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean doSupport(NettyProxyMsg msg) {
|
||||||
|
return MessageTypeEnums.DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT.getTypeByte() == msg.getType();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package org.framework.lazy.cloud.network.heartbeat.common.advanced.server;
|
||||||
|
|
||||||
|
|
||||||
|
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.MessageTypeEnums;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上报 客户端渗透服务端init信息
|
||||||
|
* REPORT_CLIENT_PERMEATE_SERVER_INIT
|
||||||
|
*/
|
||||||
|
public abstract class AbstractHandleReportClientPermeateServerInitTypeAdvanced<MSG> extends AbstractHandleChannelTypeAdvanced<NettyProxyMsg> implements HandleChannelTypeAdvanced {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支持当前类型
|
||||||
|
*
|
||||||
|
* @param msg 通道数据
|
||||||
|
* @return 布尔类型 是、否
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean doSupport(NettyProxyMsg msg) {
|
||||||
|
return MessageTypeEnums.REPORT_CLIENT_PERMEATE_SERVER_INIT.getTypeByte() == msg.getType();
|
||||||
|
}
|
||||||
|
}
|
@ -2,10 +2,8 @@ package org.framework.lazy.cloud.network.heartbeat.common.enums;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.*;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.*;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.MessageType;
|
import org.framework.lazy.cloud.network.heartbeat.common.MessageType;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.*;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.*;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.*;
|
||||||
|
|
||||||
@ -64,10 +62,13 @@ public enum MessageTypeEnums {
|
|||||||
* @see AbstractHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
* @see AbstractHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
||||||
*/
|
*/
|
||||||
REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL(MessageType.REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL, "上报 客户端渗透服务端数据传输通道连接成功"),
|
REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL(MessageType.REPORT_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL, "上报 客户端渗透服务端数据传输通道连接成功"),
|
||||||
|
/**
|
||||||
|
* @see AbstractHandleReportClientPermeateServerInitTypeAdvanced
|
||||||
|
*/
|
||||||
|
REPORT_CLIENT_PERMEATE_SERVER_INIT(MessageType.REPORT_CLIENT_PERMEATE_SERVER_INIT, "上报 客户端渗透服务端init信息"),
|
||||||
/**
|
/**
|
||||||
* @see AbstractHandleDistributeConnectSuccessNotificationTypeAdvancedHandle
|
* @see AbstractHandleDistributeConnectSuccessNotificationTypeAdvancedHandle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION(MessageType.DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION, "下发 客户端接收连接成功通知"),
|
DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION(MessageType.DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION, "下发 客户端接收连接成功通知"),
|
||||||
|
|
||||||
|
|
||||||
@ -116,6 +117,10 @@ public enum MessageTypeEnums {
|
|||||||
* @see AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
* @see AbstractHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced
|
||||||
*/
|
*/
|
||||||
DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL(MessageType.DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL, "下发 客户端渗透服务端数据传输通道连接成功"),
|
DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL(MessageType.DISTRIBUTE_CLIENT_TRANSFER_SERVER_PERMEATE_CHANNEL_CONNECTION_SUCCESSFUL, "下发 客户端渗透服务端数据传输通道连接成功"),
|
||||||
|
/**
|
||||||
|
* @see AbstractHandleDistributeClientPermeateServerInitTypeAdvanced
|
||||||
|
*/
|
||||||
|
DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT(MessageType.DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT, "下发 客户端渗透服务端init信息"),
|
||||||
;
|
;
|
||||||
|
|
||||||
private final byte typeByte;
|
private final byte typeByte;
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
package org.framework.lazy.cloud.network.heartbeat.server.config;
|
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.netty.advanced.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyClientStatsChangeApplication;
|
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.LazyInternalNetworkPenetrationMappingApplication;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyNettyClientBlacklistApplication;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyNettyClientBlacklistApplication;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.netty.advanced.*;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Role;
|
import org.springframework.context.annotation.Role;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter;
|
|
||||||
|
|
||||||
|
|
||||||
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
||||||
@ -43,8 +42,12 @@ public class HeartbeatServerConfiguration {
|
|||||||
public ServerHandleClientConnectSuccessTypeAdvanced serverReportConnectSuccessTypeAdvanced(
|
public ServerHandleClientConnectSuccessTypeAdvanced serverReportConnectSuccessTypeAdvanced(
|
||||||
LazyClientStatsChangeApplication lazyClientStatsChangeApplication,
|
LazyClientStatsChangeApplication lazyClientStatsChangeApplication,
|
||||||
LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication,
|
LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication,
|
||||||
LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication) {
|
LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication,
|
||||||
return new ServerHandleClientConnectSuccessTypeAdvanced(lazyClientStatsChangeApplication, lazyNettyClientBlacklistApplication, lazyInternalNetworkPenetrationMappingApplication);
|
LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication) {
|
||||||
|
return new ServerHandleClientConnectSuccessTypeAdvanced(lazyClientStatsChangeApplication,
|
||||||
|
lazyNettyClientBlacklistApplication,
|
||||||
|
lazyInternalNetworkPenetrationMappingApplication,
|
||||||
|
lazyInternalNetworkClientPermeateServerMappingApplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4,16 +4,19 @@ package org.framework.lazy.cloud.network.heartbeat.server.netty.advanced;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyClientStatsChangeApplication;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkPenetrationMappingApplication;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyNettyClientBlacklistApplication;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.ChannelContext;
|
import org.framework.lazy.cloud.network.heartbeat.common.ChannelContext;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.MessageType;
|
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.NettyProxyMsg;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleClientConnectSuccessTypeAdvanced;
|
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.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.command.lazy.internal.network.client.permeate.server.mapping.LazyInternalNetworkClientPermeateServerMappingQueryListCommand;
|
||||||
|
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.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.blacklist.LazyNettyClientBlacklist;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -30,11 +33,13 @@ public class ServerHandleClientConnectSuccessTypeAdvanced extends AbstractHandle
|
|||||||
private final LazyClientStatsChangeApplication lazyClientStatsChangeApplication;
|
private final LazyClientStatsChangeApplication lazyClientStatsChangeApplication;
|
||||||
private final LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication;
|
private final LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication;
|
||||||
private final LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication;
|
private final LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication;
|
||||||
|
private final LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication;
|
||||||
|
|
||||||
public ServerHandleClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication) {
|
public ServerHandleClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyInternalNetworkPenetrationMappingApplication lazyInternalNetworkPenetrationMappingApplication, LazyInternalNetworkClientPermeateServerMappingApplication lazyInternalNetworkClientPermeateServerMappingApplication) {
|
||||||
this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication;
|
this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication;
|
||||||
this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication;
|
this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication;
|
||||||
this.lazyInternalNetworkPenetrationMappingApplication = lazyInternalNetworkPenetrationMappingApplication;
|
this.lazyInternalNetworkPenetrationMappingApplication = lazyInternalNetworkPenetrationMappingApplication;
|
||||||
|
this.lazyInternalNetworkClientPermeateServerMappingApplication = lazyInternalNetworkClientPermeateServerMappingApplication;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,6 +99,28 @@ public class ServerHandleClientConnectSuccessTypeAdvanced extends AbstractHandle
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// 查询客户端渗透服务端信息
|
||||||
|
LazyInternalNetworkClientPermeateServerMappingQueryListCommand lazyInternalNetworkClientPermeateServerMappingQueryListCommand = new LazyInternalNetworkClientPermeateServerMappingQueryListCommand();
|
||||||
|
lazyInternalNetworkClientPermeateServerMappingQueryListCommand.setClientId(clientId);
|
||||||
|
lazyInternalNetworkClientPermeateServerMappingQueryListCommand.setIsDeleted(false);
|
||||||
|
lazyInternalNetworkClientPermeateServerMappingApplication.findList(lazyInternalNetworkClientPermeateServerMappingQueryListCommand)
|
||||||
|
.accept(lazyInternalNetworkClientPermeateServerMappingDTOS -> {
|
||||||
|
for (LazyInternalNetworkClientPermeateServerMappingDTO lazyInternalNetworkClientPermeateServerMappingDTO : lazyInternalNetworkClientPermeateServerMappingDTOS) {
|
||||||
|
|
||||||
|
String permeateTargetIp = lazyInternalNetworkClientPermeateServerMappingDTO.getPermeateTargetIp();
|
||||||
|
Integer permeateTargetPort = lazyInternalNetworkClientPermeateServerMappingDTO.getPermeateTargetPort();
|
||||||
|
Integer visitorPort = lazyInternalNetworkClientPermeateServerMappingDTO.getVisitorPort();
|
||||||
|
NettyProxyMsg nettyMsg = new NettyProxyMsg();
|
||||||
|
nettyMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT);
|
||||||
|
nettyMsg.setClientTargetIp(permeateTargetIp);
|
||||||
|
nettyMsg.setClientTargetPort(permeateTargetPort);
|
||||||
|
nettyMsg.setVisitorPort(visitorPort);
|
||||||
|
newChannel.writeAndFlush(nettyMsg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 查询客户端渗透客户端信息
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package org.framework.lazy.cloud.network.heartbeat.server.standalone.application.impl;
|
package org.framework.lazy.cloud.network.heartbeat.server.standalone.application.impl;
|
||||||
|
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.event.ClientChangeEvent;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.ChannelContext;
|
||||||
|
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.server.properties.ServerNodeProperties;
|
import org.framework.lazy.cloud.network.heartbeat.server.properties.ServerNodeProperties;
|
||||||
import org.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
|
import org.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkClientPermeateServerMappingApplication;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkClientPermeateServerMappingApplication;
|
||||||
@ -51,6 +56,21 @@ public class LazyInternalNetworkClientPermeateServerMappingApplicationImpl imple
|
|||||||
LazyInternalNetworkClientPermeateServerMapping lazyInternalNetworkClientPermeateServerMapping = LazyInternalNetworkClientPermeateServerMappingDTOAssembler.INSTANCE.toLazyInternalNetworkClientPermeateServerMapping(lazyInternalNetworkClientPermeateServerMappingStoryCommand);
|
LazyInternalNetworkClientPermeateServerMapping lazyInternalNetworkClientPermeateServerMapping = LazyInternalNetworkClientPermeateServerMappingDTOAssembler.INSTANCE.toLazyInternalNetworkClientPermeateServerMapping(lazyInternalNetworkClientPermeateServerMappingStoryCommand);
|
||||||
String serverId = serverNodeProperties.getNodeId();
|
String serverId = serverNodeProperties.getNodeId();
|
||||||
lazyInternalNetworkClientPermeateServerMapping.setServerId(serverId);
|
lazyInternalNetworkClientPermeateServerMapping.setServerId(serverId);
|
||||||
|
// 发送客户端初始化渗透
|
||||||
|
String clientId = lazyInternalNetworkClientPermeateServerMapping.getClientId();
|
||||||
|
ChannelContext.ClientChannel clientChannel = ChannelContext.get(clientId);
|
||||||
|
if(clientChannel!=null && clientChannel.getChannel()!=null&&clientChannel.getChannel().isActive()){
|
||||||
|
Channel channel = clientChannel.getChannel();
|
||||||
|
String permeateTargetIp = lazyInternalNetworkClientPermeateServerMapping.getPermeateTargetIp();
|
||||||
|
Integer permeateTargetPort = lazyInternalNetworkClientPermeateServerMapping.getPermeateTargetPort();
|
||||||
|
Integer visitorPort = lazyInternalNetworkClientPermeateServerMapping.getVisitorPort();
|
||||||
|
NettyProxyMsg nettyMsg = new NettyProxyMsg();
|
||||||
|
nettyMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_SERVER_INIT);
|
||||||
|
nettyMsg.setClientTargetIp(permeateTargetIp);
|
||||||
|
nettyMsg.setClientTargetPort(permeateTargetPort);
|
||||||
|
nettyMsg.setVisitorPort(visitorPort);
|
||||||
|
channel.writeAndFlush(nettyMsg);
|
||||||
|
}
|
||||||
return lazyInternalNetworkClientPermeateServerMappingRepository.story(lazyInternalNetworkClientPermeateServerMapping);
|
return lazyInternalNetworkClientPermeateServerMappingRepository.story(lazyInternalNetworkClientPermeateServerMapping);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user