【fix】客户端渗透客户端编码

This commit is contained in:
wujiawei
2024-09-21 00:32:09 +08:00
parent b4e2f8ec3c
commit 8f1f23eb2b
11 changed files with 355 additions and 24 deletions

View File

@ -1,11 +1,12 @@
package org.framework.lazy.cloud.network.heartbeat.server.standalone.application.impl;
import io.netty.channel.Channel;
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.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.LazyInternalNetworkClientPermeateClientMappingApplication;
import org.springframework.web.bind.annotation.*;
import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMapping;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMappingRemoveCommand;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.client.permeate.client.mapping.LazyInternalNetworkClientPermeateClientMappingStoryCommand;
@ -44,6 +45,9 @@ public class LazyInternalNetworkClientPermeateClientMappingApplicationImpl imple
@Override
public Result<LazyInternalNetworkClientPermeateClientMapping> story(LazyInternalNetworkClientPermeateClientMappingStoryCommand lazyInternalNetworkClientPermeateClientMappingStoryCommand) {
LazyInternalNetworkClientPermeateClientMapping lazyInternalNetworkClientPermeateClientMapping = LazyInternalNetworkClientPermeateClientMappingDTOAssembler.INSTANCE.toLazyInternalNetworkClientPermeateClientMapping(lazyInternalNetworkClientPermeateClientMappingStoryCommand);
// 下发客户端渗透客户端请求
createClientPermeateClientSocketMessage(lazyInternalNetworkClientPermeateClientMapping);
return lazyInternalNetworkClientPermeateClientMappingRepository.story(lazyInternalNetworkClientPermeateClientMapping);
}
/**
@ -59,6 +63,9 @@ public class LazyInternalNetworkClientPermeateClientMappingApplicationImpl imple
@Override
public Result<List<LazyInternalNetworkClientPermeateClientMapping>> batchStory(List<LazyInternalNetworkClientPermeateClientMappingStoryCommand> lazyInternalNetworkClientPermeateClientMappingStoryCommandList) {
List<LazyInternalNetworkClientPermeateClientMapping> lazyInternalNetworkClientPermeateClientMappingList = lazyInternalNetworkClientPermeateClientMappingStoryCommandList.stream().map( LazyInternalNetworkClientPermeateClientMappingDTOAssembler.INSTANCE::toLazyInternalNetworkClientPermeateClientMapping).collect(Collectors.toList());
for (LazyInternalNetworkClientPermeateClientMapping lazyInternalNetworkClientPermeateClientMapping : lazyInternalNetworkClientPermeateClientMappingList) {
createClientPermeateClientSocketMessage(lazyInternalNetworkClientPermeateClientMapping);
}
return lazyInternalNetworkClientPermeateClientMappingRepository.batchStory(lazyInternalNetworkClientPermeateClientMappingList);
}
/**
@ -74,6 +81,8 @@ public class LazyInternalNetworkClientPermeateClientMappingApplicationImpl imple
@Override
public Result<LazyInternalNetworkClientPermeateClientMapping> updateOne(LazyInternalNetworkClientPermeateClientMappingUpdateCommand lazyInternalNetworkClientPermeateClientMappingUpdateCommand) {
LazyInternalNetworkClientPermeateClientMapping lazyInternalNetworkClientPermeateClientMapping = LazyInternalNetworkClientPermeateClientMappingDTOAssembler.INSTANCE.toLazyInternalNetworkClientPermeateClientMapping(lazyInternalNetworkClientPermeateClientMappingUpdateCommand);
createClientPermeateClientSocketMessage(lazyInternalNetworkClientPermeateClientMapping);
createClientPermeateClientSocketMessage(lazyInternalNetworkClientPermeateClientMapping);
return lazyInternalNetworkClientPermeateClientMappingRepository.story(lazyInternalNetworkClientPermeateClientMapping);
}
@ -141,4 +150,51 @@ public class LazyInternalNetworkClientPermeateClientMappingApplicationImpl imple
return lazyInternalNetworkClientPermeateClientMappingRepository.remove(lazyInternalNetworkClientPermeateClientMapping);
}
/**
* 关闭 客户端渗透客户端socket 消息
*
* @param lazyInternalNetworkClientPermeateClientMapping 客户端渗透客户端映射
*/
public void closeClientPermeateClientSocketMessage(LazyInternalNetworkClientPermeateClientMapping lazyInternalNetworkClientPermeateClientMapping){
// 发送客户端初始化渗透
String clientId = lazyInternalNetworkClientPermeateClientMapping.getFromClientId();
ChannelContext.ClientChannel clientChannel = ChannelContext.get(clientId);
if(clientChannel!=null && clientChannel.getChannel()!=null&&clientChannel.getChannel().isActive()){
Channel channel = clientChannel.getChannel();
String permeateTargetIp = lazyInternalNetworkClientPermeateClientMapping.getPermeateTargetIp();
Integer permeateTargetPort = lazyInternalNetworkClientPermeateClientMapping.getPermeateTargetPort();
Integer visitorPort = lazyInternalNetworkClientPermeateClientMapping.getVisitorPort();
NettyProxyMsg nettyMsg = new NettyProxyMsg();
nettyMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_CLIENT_CLOSE);
nettyMsg.setClientTargetIp(permeateTargetIp);
nettyMsg.setClientTargetPort(permeateTargetPort);
nettyMsg.setVisitorPort(visitorPort);
channel.writeAndFlush(nettyMsg);
}
}
/**
* 创建 客户端渗透客户端socket 消息
*
* @param lazyInternalNetworkClientPermeateClientMapping 客户端渗透客户端映射
*/
public void createClientPermeateClientSocketMessage(LazyInternalNetworkClientPermeateClientMapping lazyInternalNetworkClientPermeateClientMapping){
// 发送客户端初始化渗透
String fromClientId = lazyInternalNetworkClientPermeateClientMapping.getFromClientId();
String toClientId = lazyInternalNetworkClientPermeateClientMapping.getToClientId();
ChannelContext.ClientChannel clientChannel = ChannelContext.get(fromClientId);
if(clientChannel!=null && clientChannel.getChannel()!=null&&clientChannel.getChannel().isActive()){
Channel channel = clientChannel.getChannel();
String permeateTargetIp = lazyInternalNetworkClientPermeateClientMapping.getPermeateTargetIp();
Integer permeateTargetPort = lazyInternalNetworkClientPermeateClientMapping.getPermeateTargetPort();
Integer visitorPort = lazyInternalNetworkClientPermeateClientMapping.getVisitorPort();
NettyProxyMsg nettyMsg = new NettyProxyMsg();
nettyMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_CLIENT_INIT);
nettyMsg.setClientTargetIp(permeateTargetIp);
nettyMsg.setClientTargetPort(permeateTargetPort);
nettyMsg.setVisitorPort(visitorPort);
nettyMsg.setClientId(toClientId);
channel.writeAndFlush(nettyMsg);
}
}
}