拆分模块.

This commit is contained in:
lijiahang
2024-10-16 15:37:12 +08:00
parent 3e41e17367
commit d82f5b4bfb
48 changed files with 180 additions and 181 deletions

View File

@@ -62,11 +62,11 @@ public class AssetWebSocketConfiguration implements WebSocketConfigurer {
@Override @Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// 终端会话 // 终端会话
registry.addHandler(terminalMessageDispatcher, prefix + "/host/terminal/{accessToken}") registry.addHandler(terminalMessageDispatcher, prefix + "/terminal/access/{accessToken}")
.addInterceptors(terminalAccessInterceptor) .addInterceptors(terminalAccessInterceptor)
.setAllowedOrigins("*"); .setAllowedOrigins("*");
// 文件传输 // 文件传输
registry.addHandler(transferMessageDispatcher, prefix + "/host/transfer/{transferToken}") registry.addHandler(transferMessageDispatcher, prefix + "/terminal/transfer/{transferToken}")
.addInterceptors(terminalTransferInterceptor) .addInterceptors(terminalTransferInterceptor)
.setAllowedOrigins("*"); .setAllowedOrigins("*");
// 执行日志 // 执行日志

View File

@@ -22,7 +22,7 @@ import com.orion.visor.framework.log.core.annotation.IgnoreLog;
import com.orion.visor.framework.log.core.enums.IgnoreLogMode; import com.orion.visor.framework.log.core.enums.IgnoreLogMode;
import com.orion.visor.framework.web.core.annotation.IgnoreWrapper; import com.orion.visor.framework.web.core.annotation.IgnoreWrapper;
import com.orion.visor.framework.web.core.annotation.RestWrapper; import com.orion.visor.framework.web.core.annotation.RestWrapper;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest; import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest;
import com.orion.visor.module.asset.entity.vo.HostSftpLogVO; import com.orion.visor.module.asset.entity.vo.HostSftpLogVO;
import com.orion.visor.module.asset.service.HostSftpService; import com.orion.visor.module.asset.service.HostSftpService;
@@ -67,7 +67,7 @@ public class HostSftpLogController {
return hostSftpService.getHostSftpLogPage(request); return hostSftpService.getHostSftpLogPage(request);
} }
@OperatorLog(HostTerminalOperatorType.DELETE_SFTP_LOG) @OperatorLog(TerminalOperatorType.DELETE_SFTP_LOG)
@DeleteMapping("/delete-log") @DeleteMapping("/delete-log")
@Operation(summary = "删除 SFTP 操作日志") @Operation(summary = "删除 SFTP 操作日志")
@Parameter(name = "idList", description = "idList", required = true) @Parameter(name = "idList", description = "idList", required = true)

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.controller;
import com.orion.visor.framework.log.core.annotation.IgnoreLog; import com.orion.visor.framework.log.core.annotation.IgnoreLog;
import com.orion.visor.framework.log.core.enums.IgnoreLogMode; import com.orion.visor.framework.log.core.enums.IgnoreLogMode;
import com.orion.visor.framework.web.core.annotation.RestWrapper; import com.orion.visor.framework.web.core.annotation.RestWrapper;
import com.orion.visor.module.asset.entity.vo.HostTerminalThemeVO; import com.orion.visor.module.asset.entity.vo.TerminalThemeVO;
import com.orion.visor.module.asset.service.TerminalService; import com.orion.visor.module.asset.service.TerminalService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -33,7 +33,7 @@ import javax.annotation.Resource;
import java.util.List; import java.util.List;
/** /**
* 主机终端 api * 终端 api
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -53,7 +53,7 @@ public class TerminalController {
@IgnoreLog(IgnoreLogMode.ALL) @IgnoreLog(IgnoreLogMode.ALL)
@GetMapping("/themes") @GetMapping("/themes")
@Operation(summary = "获取终端主题") @Operation(summary = "获取终端主题")
public List<HostTerminalThemeVO> getTerminalThemes() { public List<TerminalThemeVO> getTerminalThemes() {
return terminalService.getTerminalThemes(); return terminalService.getTerminalThemes();
} }

View File

@@ -16,7 +16,7 @@
package com.orion.visor.module.asset.convert; package com.orion.visor.module.asset.convert;
import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO; import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogCreateRequest; import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogCreateRequest;
import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogQueryRequest; import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogQueryRequest;
import com.orion.visor.module.asset.entity.vo.TerminalConnectLogVO; import com.orion.visor.module.asset.entity.vo.TerminalConnectLogVO;
@@ -43,7 +43,7 @@ public interface TerminalConnectLogConvert {
TerminalConnectLogVO to(TerminalConnectLogDO domain); TerminalConnectLogVO to(TerminalConnectLogDO domain);
TerminalConnectLogCreateRequest to(HostTerminalConnectDTO dto); TerminalConnectLogCreateRequest to(TerminalConnectDTO dto);
List<TerminalConnectLogVO> to(List<TerminalConnectLogDO> list); List<TerminalConnectLogVO> to(List<TerminalConnectLogDO> list);

View File

@@ -18,48 +18,48 @@ package com.orion.visor.module.asset.define.cache;
import com.orion.lang.define.cache.key.CacheKeyBuilder; import com.orion.lang.define.cache.key.CacheKeyBuilder;
import com.orion.lang.define.cache.key.CacheKeyDefine; import com.orion.lang.define.cache.key.CacheKeyDefine;
import com.orion.lang.define.cache.key.struct.RedisCacheStruct; import com.orion.lang.define.cache.key.struct.RedisCacheStruct;
import com.orion.visor.module.asset.entity.dto.HostTerminalAccessDTO;
import com.orion.visor.module.asset.entity.dto.HostTerminalTransferDTO;
import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO;
import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO;
import com.orion.visor.module.asset.entity.dto.TerminalAccessDTO;
import com.orion.visor.module.asset.entity.dto.TerminalTransferDTO;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
* 主机终端服务缓存 key * 终端服务缓存 key
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
* @since 2023/12/27 18:13 * @since 2023/12/27 18:13
*/ */
public interface HostTerminalCacheKeyDefine { public interface TerminalCacheKeyDefine {
CacheKeyDefine HOST_TERMINAL_ACCESS = new CacheKeyBuilder() CacheKeyDefine TERMINAL_ACCESS = new CacheKeyBuilder()
.key("host:terminal:access:{}") .key("terminal:access:{}")
.desc("主机终端访问token ${token}") .desc("终端访问token ${token}")
.type(HostTerminalAccessDTO.class) .type(TerminalAccessDTO.class)
.struct(RedisCacheStruct.STRING) .struct(RedisCacheStruct.STRING)
.timeout(3, TimeUnit.MINUTES) .timeout(3, TimeUnit.MINUTES)
.build(); .build();
CacheKeyDefine HOST_TERMINAL_TRANSFER = new CacheKeyBuilder() CacheKeyDefine TERMINAL_TRANSFER = new CacheKeyBuilder()
.key("host:terminal:transfer:{}") .key("terminal:transfer:{}")
.desc("主机终端传输token ${token}") .desc("终端传输token ${token}")
.type(HostTerminalTransferDTO.class) .type(TerminalTransferDTO.class)
.struct(RedisCacheStruct.STRING) .struct(RedisCacheStruct.STRING)
.timeout(3, TimeUnit.MINUTES) .timeout(3, TimeUnit.MINUTES)
.build(); .build();
CacheKeyDefine SFTP_GET_CONTENT = new CacheKeyBuilder() CacheKeyDefine TERMINAL_SFTP_GET_CONTENT = new CacheKeyBuilder()
.key("sftp:get:content:{}") .key("terminal:sftp:gc:{}")
.desc("sftp 获取文件内容 ${token}") .desc("sftp 获取文件内容 ${token}")
.type(SftpGetContentCacheDTO.class) .type(SftpGetContentCacheDTO.class)
.struct(RedisCacheStruct.STRING) .struct(RedisCacheStruct.STRING)
.timeout(5, TimeUnit.MINUTES) .timeout(5, TimeUnit.MINUTES)
.build(); .build();
CacheKeyDefine SFTP_SET_CONTENT = new CacheKeyBuilder() CacheKeyDefine TERMINAL_SFTP_SET_CONTENT = new CacheKeyBuilder()
.key("sftp:set:content:{}") .key("terminal:sftp:sc:{}")
.desc("sftp 设置文件内容 ${token}") .desc("sftp 设置文件内容 ${token}")
.type(SftpSetContentCacheDTO.class) .type(SftpSetContentCacheDTO.class)
.struct(RedisCacheStruct.STRING) .struct(RedisCacheStruct.STRING)

View File

@@ -25,14 +25,14 @@ import java.util.List;
import static com.orion.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*; import static com.orion.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
/** /**
* 主机终端 操作日志类型 * 终端 操作日志类型
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
* @since 2023/10/10 17:30 * @since 2023/10/10 17:30
*/ */
@Module("asset:terminal") @Module("asset:terminal")
public class HostTerminalOperatorType extends InitializingOperatorTypes { public class TerminalOperatorType extends InitializingOperatorTypes {
public static final String CONNECT = "terminal:connect"; public static final String CONNECT = "terminal:connect";

View File

@@ -23,7 +23,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* 主机终端访问参数 * 终端访问参数
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -34,8 +34,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@DesensitizeObject @DesensitizeObject
@Schema(name = "HostTerminalAccessDTO", description = "主机终端访问参数") @Schema(name = "TerminalAccessDTO", description = "终端访问参数")
public class HostTerminalAccessDTO { public class TerminalAccessDTO {
@Schema(description = "userId") @Schema(description = "userId")
private Long userId; private Long userId;

View File

@@ -24,7 +24,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* 主机终端连接参数 * 终端连接参数
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -35,8 +35,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@DesensitizeObject @DesensitizeObject
@Schema(name = "HostTerminalConnectDTO", description = "主机终端连接参数") @Schema(name = "TerminalConnectDTO", description = "终端连接参数")
public class HostTerminalConnectDTO { public class TerminalConnectDTO {
@Schema(description = "logId") @Schema(description = "logId")
private Long logId; private Long logId;

View File

@@ -23,7 +23,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* 主机终端传输参数 * 终端传输参数
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -34,8 +34,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@DesensitizeObject @DesensitizeObject
@Schema(name = "HostTerminalTransferDTO", description = "主机终端传输参数") @Schema(name = "TerminalTransferDTO", description = "终端传输参数")
public class HostTerminalTransferDTO { public class TerminalTransferDTO {
@Schema(description = "userId") @Schema(description = "userId")
private Long userId; private Long userId;

View File

@@ -23,7 +23,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* 主机终端主题 视图响应对象 * 终端主题 视图响应对象
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -33,8 +33,8 @@ import lombok.NoArgsConstructor;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Schema(name = "HostTerminalThemeVO", description = "主机终端主题 视图响应对象") @Schema(name = "TerminalThemeVO", description = "终端主题 视图响应对象")
public class HostTerminalThemeVO { public class TerminalThemeVO {
@Schema(description = "主题名称") @Schema(description = "主题名称")
private String name; private String name;

View File

@@ -35,7 +35,7 @@ import com.orion.visor.framework.common.file.FileClient;
import com.orion.visor.framework.common.utils.PathUtils; import com.orion.visor.framework.common.utils.PathUtils;
import com.orion.visor.module.asset.dao.ExecHostLogDAO; import com.orion.visor.module.asset.dao.ExecHostLogDAO;
import com.orion.visor.module.asset.entity.domain.ExecHostLogDO; import com.orion.visor.module.asset.entity.domain.ExecHostLogDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.enums.ExecHostStatusEnum; import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO; import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO; import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO;
@@ -146,7 +146,7 @@ public abstract class BaseExecCommandHandler implements IExecCommandHandler {
// 初始化日志 // 初始化日志
this.initLogOutputStream(); this.initLogOutputStream();
// 打开会话 // 打开会话
HostTerminalConnectDTO connect = terminalService.getTerminalConnectInfo(execHostCommand.getHostId()); TerminalConnectDTO connect = terminalService.getTerminalConnectInfo(execHostCommand.getHostId());
this.sessionStore = SessionStores.openSessionStore(connect); this.sessionStore = SessionStores.openSessionStore(connect);
if (Booleans.isTrue(execCommand.getScriptExec())) { if (Booleans.isTrue(execCommand.getScriptExec())) {
// 上传脚本文件 // 上传脚本文件

View File

@@ -25,7 +25,7 @@ import com.orion.net.host.SessionStore;
import com.orion.visor.framework.common.constant.AppConst; import com.orion.visor.framework.common.constant.AppConst;
import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.common.constant.Const;
import com.orion.visor.framework.common.utils.CryptoUtils; import com.orion.visor.framework.common.utils.CryptoUtils;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Optional; import java.util.Optional;
@@ -48,7 +48,7 @@ public class SessionStores {
* @param conn conn * @param conn conn
* @return sessionStore * @return sessionStore
*/ */
public static SessionStore openSessionStore(HostTerminalConnectDTO conn) { public static SessionStore openSessionStore(TerminalConnectDTO conn) {
Long hostId = conn.getHostId(); Long hostId = conn.getHostId();
String address = conn.getHostAddress(); String address = conn.getHostAddress();
String username = conn.getUsername(); String username = conn.getUsername();
@@ -81,7 +81,7 @@ public class SessionStores {
* @param sessionHolder sessionHolder * @param sessionHolder sessionHolder
* @return sessionStore * @return sessionStore
*/ */
private static SessionStore createSessionStore(HostTerminalConnectDTO conn, SessionHolder sessionHolder) { private static SessionStore createSessionStore(TerminalConnectDTO conn, SessionHolder sessionHolder) {
final boolean useKey = conn.getKeyId() != null; final boolean useKey = conn.getKeyId() != null;
// 使用密钥认证 // 使用密钥认证
if (useKey) { if (useKey) {

View File

@@ -17,7 +17,7 @@ package com.orion.visor.module.asset.handler.host.terminal;
import com.orion.visor.module.asset.define.AssetThreadPools; import com.orion.visor.module.asset.define.AssetThreadPools;
import com.orion.visor.module.asset.handler.host.terminal.enums.InputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.InputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.manager.HostTerminalManager; import com.orion.visor.module.asset.handler.host.terminal.manager.TerminalManager;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.CloseStatus;
@@ -39,7 +39,7 @@ import javax.annotation.Resource;
public class TerminalMessageDispatcher extends AbstractWebSocketHandler { public class TerminalMessageDispatcher extends AbstractWebSocketHandler {
@Resource @Resource
private HostTerminalManager hostTerminalManager; private TerminalManager terminalManager;
@Override @Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) { protected void handleTextMessage(WebSocketSession session, TextMessage message) {
@@ -80,7 +80,7 @@ public class TerminalMessageDispatcher extends AbstractWebSocketHandler {
String id = session.getId(); String id = session.getId();
log.info("TerminalMessageDispatcher-afterConnectionClosed id: {}, code: {}, reason: {}", id, status.getCode(), status.getReason()); log.info("TerminalMessageDispatcher-afterConnectionClosed id: {}, code: {}, reason: {}", id, status.getCode(), status.getReason());
// 关闭会话 // 关闭会话
hostTerminalManager.closeSession(id); terminalManager.closeSession(id);
} }
} }

View File

@@ -15,14 +15,13 @@
*/ */
package com.orion.visor.module.asset.handler.host.terminal.handler; package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.exception.argument.InvalidArgumentException;
import com.orion.visor.framework.biz.operator.log.core.model.OperatorLogModel; import com.orion.visor.framework.biz.operator.log.core.model.OperatorLogModel;
import com.orion.visor.framework.biz.operator.log.core.service.OperatorLogFrameworkService; import com.orion.visor.framework.biz.operator.log.core.service.OperatorLogFrameworkService;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.common.constant.ErrorMessage;
import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.framework.websocket.core.utils.WebSockets;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.manager.HostTerminalManager; import com.orion.visor.module.asset.handler.host.terminal.manager.TerminalManager;
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload; import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalConfig; import com.orion.visor.module.asset.handler.host.terminal.model.TerminalConfig;
import com.orion.visor.module.asset.handler.host.terminal.session.ITerminalSession; import com.orion.visor.module.asset.handler.host.terminal.session.ITerminalSession;
@@ -42,7 +41,7 @@ import java.util.Map;
public abstract class AbstractTerminalHandler<T extends TerminalBasePayload> implements ITerminalHandler<T> { public abstract class AbstractTerminalHandler<T extends TerminalBasePayload> implements ITerminalHandler<T> {
@Resource @Resource
protected HostTerminalManager hostTerminalManager; protected TerminalManager terminalManager;
@Resource @Resource
private OperatorLogFrameworkService operatorLogFrameworkService; private OperatorLogFrameworkService operatorLogFrameworkService;
@@ -90,7 +89,7 @@ public abstract class AbstractTerminalHandler<T extends TerminalBasePayload> imp
String channelId = channel.getId(); String channelId = channel.getId();
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
// 获取会话并且设置参数 // 获取会话并且设置参数
ITerminalSession session = hostTerminalManager.getSession(channelId, sessionId); ITerminalSession session = terminalManager.getSession(channelId, sessionId);
if (session != null) { if (session != null) {
TerminalConfig config = session.getConfig(); TerminalConfig config = session.getConfig();
extra.put(OperatorLogs.HOST_ID, config.getHostId()); extra.put(OperatorLogs.HOST_ID, config.getHostId());

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpChangeModeRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpChangeModeRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -45,7 +45,7 @@ public class SftpChangeModeHandler extends AbstractTerminalHandler<SftpChangeMod
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
Integer mod = payload.getMod(); Integer mod = payload.getMod();
log.info("SftpChangeModeHandler-handle start sessionId: {}, path: {}, mod: {}", sessionId, path, mod); log.info("SftpChangeModeHandler-handle start sessionId: {}, path: {}, mod: {}", sessionId, path, mod);
@@ -71,7 +71,7 @@ public class SftpChangeModeHandler extends AbstractTerminalHandler<SftpChangeMod
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
extra.put(OperatorLogs.MOD, mod); extra.put(OperatorLogs.MOD, mod);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_CHMOD, extra, TerminalOperatorType.SFTP_CHMOD,
startTime, ex); startTime, ex);
} }

View File

@@ -45,7 +45,7 @@ public class SftpDownloadFlatDirectoryHandler extends AbstractTerminalHandler<Sf
public void handle(WebSocketSession channel, SftpDownloadFlatDirectoryRequest payload) { public void handle(WebSocketSession channel, SftpDownloadFlatDirectoryRequest payload) {
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String[] paths = payload.getPath().split("\\|"); String[] paths = payload.getPath().split("\\|");
log.info("SftpDownloadFlatDirectoryHandler-handle start sessionId: {}, paths: {}", sessionId, Arrays.toString(paths)); log.info("SftpDownloadFlatDirectoryHandler-handle start sessionId: {}, paths: {}", sessionId, Arrays.toString(paths));
Exception ex = null; Exception ex = null;

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.id.UUIds; import com.orion.lang.id.UUIds;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.framework.redis.core.utils.RedisStrings; import com.orion.visor.framework.redis.core.utils.RedisStrings;
import com.orion.visor.module.asset.define.cache.HostTerminalCacheKeyDefine; import com.orion.visor.module.asset.define.cache.TerminalCacheKeyDefine;
import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
@@ -43,7 +43,7 @@ public class SftpGetContentHandler extends AbstractTerminalHandler<SftpBaseReque
public void handle(WebSocketSession channel, SftpBaseRequest payload) { public void handle(WebSocketSession channel, SftpBaseRequest payload) {
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpGetContentHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpGetContentHandler-handle start sessionId: {}, path: {}", sessionId, path);
String token = UUIds.random32(); String token = UUIds.random32();
@@ -52,12 +52,12 @@ public class SftpGetContentHandler extends AbstractTerminalHandler<SftpBaseReque
// 检查文件是否可编辑 // 检查文件是否可编辑
session.checkCanEdit(path); session.checkCanEdit(path);
// 设置缓存 // 设置缓存
String key = HostTerminalCacheKeyDefine.SFTP_GET_CONTENT.format(token); String key = TerminalCacheKeyDefine.TERMINAL_SFTP_GET_CONTENT.format(token);
SftpGetContentCacheDTO cache = SftpGetContentCacheDTO.builder() SftpGetContentCacheDTO cache = SftpGetContentCacheDTO.builder()
.hostId(session.getConfig().getHostId()) .hostId(session.getConfig().getHostId())
.path(path) .path(path)
.build(); .build();
RedisStrings.setJson(key, HostTerminalCacheKeyDefine.SFTP_GET_CONTENT, cache); RedisStrings.setJson(key, TerminalCacheKeyDefine.TERMINAL_SFTP_GET_CONTENT, cache);
log.info("SftpGetContentHandler-handle success sessionId: {}, path: {}", sessionId, path); log.info("SftpGetContentHandler-handle success sessionId: {}, path: {}", sessionId, path);
} catch (Exception e) { } catch (Exception e) {
log.error("SftpGetContentHandler-handle error sessionId: {}", sessionId, e); log.error("SftpGetContentHandler-handle error sessionId: {}", sessionId, e);

View File

@@ -46,7 +46,7 @@ public class SftpListHandler extends AbstractTerminalHandler<SftpListRequest> {
public void handle(WebSocketSession channel, SftpListRequest payload) { public void handle(WebSocketSession channel, SftpListRequest payload) {
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpListHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpListHandler-handle start sessionId: {}, path: {}", sessionId, path);
Exception ex = null; Exception ex = null;

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -45,7 +45,7 @@ public class SftpMakeDirectoryHandler extends AbstractTerminalHandler<SftpBaseRe
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpMakeDirectoryHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpMakeDirectoryHandler-handle start sessionId: {}, path: {}", sessionId, path);
Exception ex = null; Exception ex = null;
@@ -69,7 +69,7 @@ public class SftpMakeDirectoryHandler extends AbstractTerminalHandler<SftpBaseRe
Map<String, Object> extra = Maps.newMap(); Map<String, Object> extra = Maps.newMap();
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_MKDIR, extra, TerminalOperatorType.SFTP_MKDIR,
startTime, ex); startTime, ex);
} }

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpMoveRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpMoveRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -45,7 +45,7 @@ public class SftpMoveHandler extends AbstractTerminalHandler<SftpMoveRequest> {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
String target = payload.getTarget(); String target = payload.getTarget();
log.info("SftpMoveHandler-handle start sessionId: {}, path: {}, target: {}", sessionId, path, target); log.info("SftpMoveHandler-handle start sessionId: {}, path: {}, target: {}", sessionId, path, target);
@@ -71,7 +71,7 @@ public class SftpMoveHandler extends AbstractTerminalHandler<SftpMoveRequest> {
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
extra.put(OperatorLogs.TARGET, target); extra.put(OperatorLogs.TARGET, target);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_MOVE, extra, TerminalOperatorType.SFTP_MOVE,
startTime, ex); startTime, ex);
} }

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -47,7 +47,7 @@ public class SftpRemoveHandler extends AbstractTerminalHandler<SftpBaseRequest>
String path = payload.getPath(); String path = payload.getPath();
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
// 获取会话 // 获取会话
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String[] paths = path.split("\\|"); String[] paths = path.split("\\|");
log.info("SftpRemoveHandler-handle start sessionId: {}, path: {}", sessionId, Arrays.toString(paths)); log.info("SftpRemoveHandler-handle start sessionId: {}, path: {}", sessionId, Arrays.toString(paths));
Exception ex = null; Exception ex = null;
@@ -71,7 +71,7 @@ public class SftpRemoveHandler extends AbstractTerminalHandler<SftpBaseRequest>
Map<String, Object> extra = Maps.newMap(); Map<String, Object> extra = Maps.newMap();
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_REMOVE, extra, TerminalOperatorType.SFTP_REMOVE,
startTime, ex); startTime, ex);
} }

View File

@@ -20,8 +20,8 @@ import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.framework.redis.core.utils.RedisStrings; import com.orion.visor.framework.redis.core.utils.RedisStrings;
import com.orion.visor.module.asset.define.cache.HostTerminalCacheKeyDefine; import com.orion.visor.module.asset.define.cache.TerminalCacheKeyDefine;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
@@ -49,7 +49,7 @@ public class SftpSetContentHandler extends AbstractTerminalHandler<SftpBaseReque
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpSetContentHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpSetContentHandler-handle start sessionId: {}, path: {}", sessionId, path);
String token = UUIds.random32(); String token = UUIds.random32();
@@ -58,12 +58,12 @@ public class SftpSetContentHandler extends AbstractTerminalHandler<SftpBaseReque
// 检查文件是否可编辑 // 检查文件是否可编辑
session.checkCanEdit(path); session.checkCanEdit(path);
// 设置缓存 // 设置缓存
String key = HostTerminalCacheKeyDefine.SFTP_SET_CONTENT.format(token); String key = TerminalCacheKeyDefine.TERMINAL_SFTP_SET_CONTENT.format(token);
SftpSetContentCacheDTO cache = SftpSetContentCacheDTO.builder() SftpSetContentCacheDTO cache = SftpSetContentCacheDTO.builder()
.hostId(session.getConfig().getHostId()) .hostId(session.getConfig().getHostId())
.path(path) .path(path)
.build(); .build();
RedisStrings.setJson(key, HostTerminalCacheKeyDefine.SFTP_SET_CONTENT, cache); RedisStrings.setJson(key, TerminalCacheKeyDefine.TERMINAL_SFTP_SET_CONTENT, cache);
log.info("SftpSetContentHandler-handle success sessionId: {}, path: {}", sessionId, path); log.info("SftpSetContentHandler-handle success sessionId: {}, path: {}", sessionId, path);
} catch (Exception e) { } catch (Exception e) {
log.error("SftpSetContentHandler-handle error sessionId: {}", sessionId, e); log.error("SftpSetContentHandler-handle error sessionId: {}", sessionId, e);
@@ -82,7 +82,7 @@ public class SftpSetContentHandler extends AbstractTerminalHandler<SftpBaseReque
Map<String, Object> extra = Maps.newMap(); Map<String, Object> extra = Maps.newMap();
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_SET_CONTENT, extra, TerminalOperatorType.SFTP_SET_CONTENT,
startTime, ex); startTime, ex);
} }

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -45,7 +45,7 @@ public class SftpTouchHandler extends AbstractTerminalHandler<SftpBaseRequest> {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpTouchHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpTouchHandler-handle start sessionId: {}, path: {}", sessionId, path);
Exception ex = null; Exception ex = null;
@@ -69,7 +69,7 @@ public class SftpTouchHandler extends AbstractTerminalHandler<SftpBaseRequest> {
Map<String, Object> extra = Maps.newMap(); Map<String, Object> extra = Maps.newMap();
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_TOUCH, extra, TerminalOperatorType.SFTP_TOUCH,
startTime, ex); startTime, ex);
} }

View File

@@ -18,7 +18,7 @@ package com.orion.visor.module.asset.handler.host.terminal.handler;
import com.orion.lang.utils.collect.Maps; import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum; import com.orion.visor.module.asset.handler.host.terminal.enums.OutputTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.visor.module.asset.handler.host.terminal.model.request.SftpBaseRequest;
import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.visor.module.asset.handler.host.terminal.model.response.SftpBaseResponse;
@@ -45,7 +45,7 @@ public class SftpTruncateHandler extends AbstractTerminalHandler<SftpBaseRequest
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
// 获取会话 // 获取会话
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); ISftpSession session = terminalManager.getSession(channel.getId(), sessionId);
String path = payload.getPath(); String path = payload.getPath();
log.info("SftpTruncateHandler-handle start sessionId: {}, path: {}", sessionId, path); log.info("SftpTruncateHandler-handle start sessionId: {}, path: {}", sessionId, path);
Exception ex = null; Exception ex = null;
@@ -69,7 +69,7 @@ public class SftpTruncateHandler extends AbstractTerminalHandler<SftpBaseRequest
Map<String, Object> extra = Maps.newMap(); Map<String, Object> extra = Maps.newMap();
extra.put(OperatorLogs.PATH, path); extra.put(OperatorLogs.PATH, path);
this.saveOperatorLog(payload, channel, this.saveOperatorLog(payload, channel,
extra, HostTerminalOperatorType.SFTP_TRUNCATE, extra, TerminalOperatorType.SFTP_TRUNCATE,
startTime, ex); startTime, ex);
} }

View File

@@ -35,7 +35,7 @@ public class SshInputHandler extends AbstractTerminalHandler<SshInputRequest> {
@Override @Override
public void handle(WebSocketSession channel, SshInputRequest payload) { public void handle(WebSocketSession channel, SshInputRequest payload) {
// 获取会话 // 获取会话
ISshSession session = hostTerminalManager.getSession(channel.getId(), payload.getSessionId()); ISshSession session = terminalManager.getSession(channel.getId(), payload.getSessionId());
// 处理输入 // 处理输入
session.write(payload.getCommand()); session.write(payload.getCommand());
} }

View File

@@ -35,7 +35,7 @@ public class SshResizeHandler extends AbstractTerminalHandler<SshResizeRequest>
@Override @Override
public void handle(WebSocketSession channel, SshResizeRequest payload) { public void handle(WebSocketSession channel, SshResizeRequest payload) {
// 获取会话 // 获取会话
ISshSession session = hostTerminalManager.getSession(channel.getId(), payload.getSessionId()); ISshSession session = terminalManager.getSession(channel.getId(), payload.getSessionId());
// 修改大小 // 修改大小
session.resize(payload.getCols(), payload.getRows()); session.resize(payload.getCols(), payload.getRows());
} }

View File

@@ -27,10 +27,10 @@ import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.framework.websocket.core.utils.WebSockets;
import com.orion.visor.module.asset.dao.HostDAO; import com.orion.visor.module.asset.dao.HostDAO;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO; import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO;
import com.orion.visor.module.asset.entity.domain.HostDO; import com.orion.visor.module.asset.entity.domain.HostDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogCreateRequest; import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogCreateRequest;
import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum; import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum;
import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum; import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum;
@@ -91,7 +91,7 @@ public class TerminalCheckHandler extends AbstractTerminalHandler<TerminalCheckR
log.info("TerminalCheckHandler-handle unknown host userId: {}, hostId: {}, sessionId: {}", userId, hostId, sessionId); log.info("TerminalCheckHandler-handle unknown host userId: {}, hostId: {}, sessionId: {}", userId, hostId, sessionId);
return; return;
} }
HostTerminalConnectDTO connect = null; TerminalConnectDTO connect = null;
Exception ex = null; Exception ex = null;
try { try {
// 获取连接信息 // 获取连接信息
@@ -133,7 +133,7 @@ public class TerminalCheckHandler extends AbstractTerminalHandler<TerminalCheckR
* @return 是否存在 * @return 是否存在
*/ */
private boolean checkSession(WebSocketSession channel, TerminalCheckRequest payload) { private boolean checkSession(WebSocketSession channel, TerminalCheckRequest payload) {
ITerminalSession session = hostTerminalManager.getSession(channel.getId(), payload.getSessionId()); ITerminalSession session = terminalManager.getSession(channel.getId(), payload.getSessionId());
if (session != null) { if (session != null) {
this.sendCheckFailedMessage(channel, payload, ErrorMessage.SESSION_PRESENT); this.sendCheckFailedMessage(channel, payload, ErrorMessage.SESSION_PRESENT);
return true; return true;
@@ -207,7 +207,7 @@ public class TerminalCheckHandler extends AbstractTerminalHandler<TerminalCheckR
extra.put(OperatorLogs.SESSION_ID, sessionId); extra.put(OperatorLogs.SESSION_ID, sessionId);
// 日志参数 // 日志参数
OperatorLogModel logModel = TerminalUtils.getOperatorLogModel(channel, extra, OperatorLogModel logModel = TerminalUtils.getOperatorLogModel(channel, extra,
HostTerminalOperatorType.CONNECT, startTime, ex); TerminalOperatorType.CONNECT, startTime, ex);
// 记录操作日志 // 记录操作日志
operatorLogFrameworkService.insert(logModel); operatorLogFrameworkService.insert(logModel);
// 记录连接日志 // 记录连接日志

View File

@@ -35,7 +35,7 @@ public class TerminalCloseHandler extends AbstractTerminalHandler<TerminalBasePa
public void handle(WebSocketSession channel, TerminalBasePayload payload) { public void handle(WebSocketSession channel, TerminalBasePayload payload) {
log.info("TerminalCloseHandler-handle start sessionId: {}", payload.getSessionId()); log.info("TerminalCloseHandler-handle start sessionId: {}", payload.getSessionId());
// 关闭会话 // 关闭会话
hostTerminalManager.closeSession(channel.getId(), payload.getSessionId()); terminalManager.closeSession(channel.getId(), payload.getSessionId());
} }
} }

View File

@@ -26,7 +26,7 @@ import com.orion.visor.framework.common.constant.ErrorMessage;
import com.orion.visor.framework.common.constant.ExtraFieldConst; import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.common.enums.BooleanBit;
import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.framework.websocket.core.utils.WebSockets;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum; import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum;
import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum; import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum;
import com.orion.visor.module.asset.handler.host.jsch.SessionStores; import com.orion.visor.module.asset.handler.host.jsch.SessionStores;
@@ -65,7 +65,7 @@ public class TerminalConnectHandler extends AbstractTerminalHandler<TerminalConn
String sessionId = payload.getSessionId(); String sessionId = payload.getSessionId();
log.info("TerminalConnectHandler-handle start sessionId: {}", sessionId); log.info("TerminalConnectHandler-handle start sessionId: {}", sessionId);
// 获取终端连接信息 // 获取终端连接信息
HostTerminalConnectDTO connect = WebSockets.getAttr(channel, sessionId); TerminalConnectDTO connect = WebSockets.getAttr(channel, sessionId);
if (connect == null) { if (connect == null) {
log.info("TerminalConnectHandler-handle unknown sessionId: {}", sessionId); log.info("TerminalConnectHandler-handle unknown sessionId: {}", sessionId);
this.send(channel, this.send(channel,
@@ -85,7 +85,7 @@ public class TerminalConnectHandler extends AbstractTerminalHandler<TerminalConn
// 连接主机 // 连接主机
session = this.connect(sessionId, connect, channel, payload); session = this.connect(sessionId, connect, channel, payload);
// 添加会话到 manager // 添加会话到 manager
hostTerminalManager.addSession(session); terminalManager.addSession(session);
} catch (Exception e) { } catch (Exception e) {
ex = e; ex = e;
Streams.close(session); Streams.close(session);
@@ -114,7 +114,7 @@ public class TerminalConnectHandler extends AbstractTerminalHandler<TerminalConn
* @return channel * @return channel
*/ */
private ITerminalSession connect(String sessionId, private ITerminalSession connect(String sessionId,
HostTerminalConnectDTO connect, TerminalConnectDTO connect,
WebSocketSession channel, WebSocketSession channel,
TerminalConnectRequest body) { TerminalConnectRequest body) {
String connectType = connect.getConnectType(); String connectType = connect.getConnectType();

View File

@@ -41,7 +41,7 @@ public class TerminalPingHandler extends AbstractTerminalHandler<TerminalBasePay
// 发送 pong // 发送 pong
this.send(channel, OutputTypeEnum.PONG.getType()); this.send(channel, OutputTypeEnum.PONG.getType());
// 活跃 terminal // 活跃 terminal
Map<String, ITerminalSession> sessions = hostTerminalManager.getSession(channel.getId()); Map<String, ITerminalSession> sessions = terminalManager.getSession(channel.getId());
if (!Maps.isEmpty(sessions)) { if (!Maps.isEmpty(sessions)) {
for (ITerminalSession session : sessions.values()) { for (ITerminalSession session : sessions.values()) {
session.keepAlive(); session.keepAlive();

View File

@@ -25,14 +25,14 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
/** /**
* 主机终端管理器 * 终端管理器
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
* @since 2024/1/3 11:35 * @since 2024/1/3 11:35
*/ */
@Component @Component
public class HostTerminalManager { public class TerminalManager {
/** /**
* 会话存储器 * 会话存储器

View File

@@ -21,7 +21,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* 主机终端连接参数 * 终端连接参数
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0

View File

@@ -21,7 +21,7 @@ import com.orion.net.host.SessionStore;
import com.orion.spring.SpringHolder; import com.orion.spring.SpringHolder;
import com.orion.visor.framework.common.constant.ExtraFieldConst; import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.framework.websocket.core.utils.WebSockets;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.handler.host.jsch.SessionStores; import com.orion.visor.module.asset.handler.host.jsch.SessionStores;
import com.orion.visor.module.asset.handler.host.transfer.enums.TransferOperator; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferOperator;
import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver;
@@ -110,12 +110,12 @@ public class TransferHandler implements ITransferHandler {
if (terminalConnection == null) { if (terminalConnection == null) {
// 获取终端连接信息 // 获取终端连接信息
Long userId = WebSockets.getAttr(channel, ExtraFieldConst.USER_ID); Long userId = WebSockets.getAttr(channel, ExtraFieldConst.USER_ID);
HostTerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(userId, hostId); TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(userId, hostId);
terminalConnection = new TerminalConnection(connectInfo, SessionStores.openSessionStore(connectInfo)); terminalConnection = new TerminalConnection(connectInfo, SessionStores.openSessionStore(connectInfo));
terminalConnections.put(hostId, terminalConnection); terminalConnections.put(hostId, terminalConnection);
} }
SessionStore sessionStore = terminalConnection.getSessionStore(); SessionStore sessionStore = terminalConnection.getSessionStore();
HostTerminalConnectDTO connectInfo = terminalConnection.getConnectInfo(); TerminalConnectDTO connectInfo = terminalConnection.getConnectInfo();
// 获取会话 // 获取会话
ITransferSession session = sessions.get(sessionKey); ITransferSession session = sessions.get(sessionKey);
if (session == null) { if (session == null) {

View File

@@ -16,7 +16,7 @@
package com.orion.visor.module.asset.handler.host.transfer.model; package com.orion.visor.module.asset.handler.host.transfer.model;
import com.orion.net.host.SessionStore; import com.orion.net.host.SessionStore;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -38,7 +38,7 @@ public class TerminalConnection {
/** /**
* connectInfo * connectInfo
*/ */
private HostTerminalConnectDTO connectInfo; private TerminalConnectDTO connectInfo;
/** /**
* sessionStore * sessionStore

View File

@@ -24,8 +24,8 @@ import com.orion.net.host.sftp.SftpFile;
import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.common.constant.Const;
import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.common.constant.ErrorMessage;
import com.orion.visor.module.asset.define.AssetThreadPools; import com.orion.visor.module.asset.define.AssetThreadPools;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver;
import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest; import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest;
import com.orion.visor.module.asset.handler.host.transfer.utils.TransferUtils; import com.orion.visor.module.asset.handler.host.transfer.utils.TransferUtils;
@@ -54,7 +54,7 @@ public class DownloadSession extends TransferSession implements StreamingRespons
private Long fileSize; private Long fileSize;
public DownloadSession(HostTerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) { public DownloadSession(TerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) {
super(connectInfo, sessionStore, channel); super(connectInfo, sessionStore, channel);
this.fileSize = 0L; this.fileSize = 0L;
} }
@@ -65,7 +65,7 @@ public class DownloadSession extends TransferSession implements StreamingRespons
super.onStart(request); super.onStart(request);
log.info("DownloadSession.startDownload open start channelId: {}, path: {}", channelId, path); log.info("DownloadSession.startDownload open start channelId: {}, path: {}", channelId, path);
// 保存操作日志 // 保存操作日志
this.saveOperatorLog(HostTerminalOperatorType.SFTP_DOWNLOAD, path); this.saveOperatorLog(TerminalOperatorType.SFTP_DOWNLOAD, path);
// 检查连接 // 检查连接
this.init(); this.init();
// 检查文件是否存在 // 检查文件是否存在

View File

@@ -25,7 +25,7 @@ import com.orion.visor.framework.biz.operator.log.core.model.OperatorLogModel;
import com.orion.visor.framework.biz.operator.log.core.service.OperatorLogFrameworkService; import com.orion.visor.framework.biz.operator.log.core.service.OperatorLogFrameworkService;
import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.visor.module.asset.define.config.AppSftpConfig; import com.orion.visor.module.asset.define.config.AppSftpConfig;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.handler.host.terminal.utils.TerminalUtils; import com.orion.visor.module.asset.handler.host.terminal.utils.TerminalUtils;
import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver;
import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest; import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest;
@@ -49,7 +49,7 @@ public abstract class TransferSession implements ITransferSession {
protected static final AppSftpConfig SFTP_CONFIG = SpringHolder.getBean(AppSftpConfig.class); protected static final AppSftpConfig SFTP_CONFIG = SpringHolder.getBean(AppSftpConfig.class);
protected final HostTerminalConnectDTO connectInfo; protected final TerminalConnectDTO connectInfo;
protected final SessionStore sessionStore; protected final SessionStore sessionStore;
@@ -66,7 +66,7 @@ public abstract class TransferSession implements ITransferSession {
@Setter @Setter
protected String token; protected String token;
public TransferSession(HostTerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) { public TransferSession(TerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) {
this.connectInfo = connectInfo; this.connectInfo = connectInfo;
this.sessionStore = sessionStore; this.sessionStore = sessionStore;
this.channel = channel; this.channel = channel;

View File

@@ -17,8 +17,8 @@ package com.orion.visor.module.asset.handler.host.transfer.session;
import com.orion.lang.utils.io.Streams; import com.orion.lang.utils.io.Streams;
import com.orion.net.host.SessionStore; import com.orion.net.host.SessionStore;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiver;
import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest; import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest;
import com.orion.visor.module.asset.handler.host.transfer.utils.TransferUtils; import com.orion.visor.module.asset.handler.host.transfer.utils.TransferUtils;
@@ -41,7 +41,7 @@ public class UploadSession extends TransferSession {
protected OutputStream outputStream; protected OutputStream outputStream;
public UploadSession(HostTerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) { public UploadSession(TerminalConnectDTO connectInfo, SessionStore sessionStore, WebSocketSession channel) {
super(connectInfo, sessionStore, channel); super(connectInfo, sessionStore, channel);
} }
@@ -51,7 +51,7 @@ public class UploadSession extends TransferSession {
try { try {
log.info("UploadSession.startUpload start channelId: {}, path: {}", channelId, path); log.info("UploadSession.startUpload start channelId: {}, path: {}", channelId, path);
// 保存操作日志 // 保存操作日志
this.saveOperatorLog(HostTerminalOperatorType.SFTP_UPLOAD, path); this.saveOperatorLog(TerminalOperatorType.SFTP_UPLOAD, path);
// 检查连接 // 检查连接
this.init(); this.init();
// 检查文件是否存在 // 检查文件是否存在

View File

@@ -25,7 +25,7 @@ import com.orion.visor.framework.common.file.FileClient;
import com.orion.visor.module.asset.dao.UploadTaskFileDAO; import com.orion.visor.module.asset.dao.UploadTaskFileDAO;
import com.orion.visor.module.asset.define.config.AppSftpConfig; import com.orion.visor.module.asset.define.config.AppSftpConfig;
import com.orion.visor.module.asset.entity.domain.UploadTaskFileDO; import com.orion.visor.module.asset.entity.domain.UploadTaskFileDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.enums.UploadTaskFileStatusEnum; import com.orion.visor.module.asset.enums.UploadTaskFileStatusEnum;
import com.orion.visor.module.asset.handler.host.jsch.SessionStores; import com.orion.visor.module.asset.handler.host.jsch.SessionStores;
import com.orion.visor.module.asset.handler.host.upload.model.FileUploadFileItemDTO; import com.orion.visor.module.asset.handler.host.upload.model.FileUploadFileItemDTO;
@@ -116,7 +116,7 @@ public class FileUploader implements IFileUploader {
log.info("HostFileUploader.initSession start taskId: {}, hostId: {}", taskId, hostId); log.info("HostFileUploader.initSession start taskId: {}, hostId: {}", taskId, hostId);
try { try {
// 打开会话 // 打开会话
HostTerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(hostId); TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(hostId);
this.sessionStore = SessionStores.openSessionStore(connectInfo); this.sessionStore = SessionStores.openSessionStore(connectInfo);
this.executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset()); this.executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset());
executor.connect(); executor.connect();

View File

@@ -19,7 +19,7 @@ import com.orion.lang.utils.Urls;
import com.orion.visor.framework.common.constant.ExtraFieldConst; import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.common.meta.TraceIdHolder; import com.orion.visor.framework.common.meta.TraceIdHolder;
import com.orion.visor.framework.common.utils.Requests; import com.orion.visor.framework.common.utils.Requests;
import com.orion.visor.module.asset.entity.dto.HostTerminalAccessDTO; import com.orion.visor.module.asset.entity.dto.TerminalAccessDTO;
import com.orion.visor.module.asset.service.TerminalService; import com.orion.visor.module.asset.service.TerminalService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpRequest;
@@ -51,7 +51,7 @@ public class TerminalAccessInterceptor implements HandshakeInterceptor {
String accessToken = Urls.getUrlSource(request.getURI().getPath()); String accessToken = Urls.getUrlSource(request.getURI().getPath());
log.info("TerminalAccessInterceptor-beforeHandshake start accessToken: {}", accessToken); log.info("TerminalAccessInterceptor-beforeHandshake start accessToken: {}", accessToken);
// 获取连接数据 // 获取连接数据
HostTerminalAccessDTO access = terminalService.getAccessInfoByToken(accessToken); TerminalAccessDTO access = terminalService.getAccessInfoByToken(accessToken);
if (access == null) { if (access == null) {
log.error("TerminalAccessInterceptor-beforeHandshake absent accessToken: {}", accessToken); log.error("TerminalAccessInterceptor-beforeHandshake absent accessToken: {}", accessToken);
return false; return false;

View File

@@ -19,7 +19,7 @@ import com.orion.lang.utils.Urls;
import com.orion.visor.framework.common.constant.ExtraFieldConst; import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.common.meta.TraceIdHolder; import com.orion.visor.framework.common.meta.TraceIdHolder;
import com.orion.visor.framework.common.utils.Requests; import com.orion.visor.framework.common.utils.Requests;
import com.orion.visor.module.asset.entity.dto.HostTerminalTransferDTO; import com.orion.visor.module.asset.entity.dto.TerminalTransferDTO;
import com.orion.visor.module.asset.service.TerminalService; import com.orion.visor.module.asset.service.TerminalService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpRequest;
@@ -51,7 +51,7 @@ public class TerminalTransferInterceptor implements HandshakeInterceptor {
String transferToken = Urls.getUrlSource(request.getURI().getPath()); String transferToken = Urls.getUrlSource(request.getURI().getPath());
log.info("TerminalTransferInterceptor-beforeHandshake start transferToken: {}", transferToken); log.info("TerminalTransferInterceptor-beforeHandshake start transferToken: {}", transferToken);
// 获取连接数据 // 获取连接数据
HostTerminalTransferDTO transfer = terminalService.getTransferInfoByToken(transferToken); TerminalTransferDTO transfer = terminalService.getTransferInfoByToken(transferToken);
if (transfer == null) { if (transfer == null) {
log.error("TerminalTransferInterceptor-beforeHandshake absent transferToken: {}", transferToken); log.error("TerminalTransferInterceptor-beforeHandshake absent transferToken: {}", transferToken);
return false; return false;

View File

@@ -16,15 +16,15 @@
package com.orion.visor.module.asset.service; package com.orion.visor.module.asset.service;
import com.orion.visor.module.asset.entity.domain.HostDO; import com.orion.visor.module.asset.entity.domain.HostDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalAccessDTO; import com.orion.visor.module.asset.entity.dto.TerminalAccessDTO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.entity.dto.HostTerminalTransferDTO; import com.orion.visor.module.asset.entity.dto.TerminalTransferDTO;
import com.orion.visor.module.asset.entity.vo.HostTerminalThemeVO; import com.orion.visor.module.asset.entity.vo.TerminalThemeVO;
import java.util.List; import java.util.List;
/** /**
* 主机终端服务 * 终端服务
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0
@@ -37,7 +37,7 @@ public interface TerminalService {
* *
* @return themes * @return themes
*/ */
List<HostTerminalThemeVO> getTerminalThemes(); List<TerminalThemeVO> getTerminalThemes();
/** /**
* 获取主机终端访问 accessToken * 获取主机终端访问 accessToken
@@ -54,20 +54,20 @@ public interface TerminalService {
String getTerminalTransferToken(); String getTerminalTransferToken();
/** /**
* 通过 accessToken 获取主机终端访问信息 * 通过 accessToken 获取终端访问信息
* *
* @param token token * @param token token
* @return config * @return config
*/ */
HostTerminalAccessDTO getAccessInfoByToken(String token); TerminalAccessDTO getAccessInfoByToken(String token);
/** /**
* 通过 transferToken 获取主机终端传输信息 * 通过 transferToken 获取终端传输信息
* *
* @param token token * @param token token
* @return config * @return config
*/ */
HostTerminalTransferDTO getTransferInfoByToken(String token); TerminalTransferDTO getTransferInfoByToken(String token);
/** /**
* 获取连接信息 * 获取连接信息
@@ -75,7 +75,7 @@ public interface TerminalService {
* @param hostId hostId * @param hostId hostId
* @return session * @return session
*/ */
HostTerminalConnectDTO getTerminalConnectInfo(Long hostId); TerminalConnectDTO getTerminalConnectInfo(Long hostId);
/** /**
* 使用用户配置获取连接信息 * 使用用户配置获取连接信息
@@ -84,7 +84,7 @@ public interface TerminalService {
* @param userId userId * @param userId userId
* @return session * @return session
*/ */
HostTerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId); TerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId);
/** /**
* 使用用户配置获取连接信息 * 使用用户配置获取连接信息
@@ -93,6 +93,6 @@ public interface TerminalService {
* @param userId userId * @param userId userId
* @return session * @return session
*/ */
HostTerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host); TerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host);
} }

View File

@@ -35,9 +35,9 @@ import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.redis.core.utils.RedisStrings; import com.orion.visor.framework.redis.core.utils.RedisStrings;
import com.orion.visor.framework.security.core.utils.SecurityUtils; import com.orion.visor.framework.security.core.utils.SecurityUtils;
import com.orion.visor.module.asset.convert.HostSftpLogConvert; import com.orion.visor.module.asset.convert.HostSftpLogConvert;
import com.orion.visor.module.asset.define.cache.HostTerminalCacheKeyDefine; import com.orion.visor.module.asset.define.cache.TerminalCacheKeyDefine;
import com.orion.visor.module.asset.define.operator.HostTerminalOperatorType; import com.orion.visor.module.asset.define.operator.TerminalOperatorType;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO;
import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO;
import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest; import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest;
@@ -117,8 +117,8 @@ public class HostSftpServiceImpl implements HostSftpService {
@Override @Override
public void getFileContentByToken(String token, HttpServletResponse response) throws IOException { public void getFileContentByToken(String token, HttpServletResponse response) throws IOException {
// 解析 token // 解析 token
String key = HostTerminalCacheKeyDefine.SFTP_GET_CONTENT.format(token); String key = TerminalCacheKeyDefine.TERMINAL_SFTP_GET_CONTENT.format(token);
SftpGetContentCacheDTO cache = RedisStrings.getJson(key, HostTerminalCacheKeyDefine.SFTP_GET_CONTENT); SftpGetContentCacheDTO cache = RedisStrings.getJson(key, TerminalCacheKeyDefine.TERMINAL_SFTP_GET_CONTENT);
if (cache == null) { if (cache == null) {
Servlets.writeHttpWrapper(response, HttpWrapper.error(ErrorMessage.FILE_ABSENT)); Servlets.writeHttpWrapper(response, HttpWrapper.error(ErrorMessage.FILE_ABSENT));
return; return;
@@ -131,7 +131,7 @@ public class HostSftpServiceImpl implements HostSftpService {
InputStream in = null; InputStream in = null;
try { try {
// 获取终端连接信息 // 获取终端连接信息
HostTerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId()); TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId());
sessionStore = SessionStores.openSessionStore(connectInfo); sessionStore = SessionStores.openSessionStore(connectInfo);
executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset()); executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset());
executor.connect(); executor.connect();
@@ -152,8 +152,8 @@ public class HostSftpServiceImpl implements HostSftpService {
@Override @Override
public void setFileContentByToken(String token, MultipartFile file) { public void setFileContentByToken(String token, MultipartFile file) {
// 解析 token // 解析 token
String key = HostTerminalCacheKeyDefine.SFTP_SET_CONTENT.format(token); String key = TerminalCacheKeyDefine.TERMINAL_SFTP_SET_CONTENT.format(token);
SftpSetContentCacheDTO cache = RedisStrings.getJson(key, HostTerminalCacheKeyDefine.SFTP_SET_CONTENT); SftpSetContentCacheDTO cache = RedisStrings.getJson(key, TerminalCacheKeyDefine.TERMINAL_SFTP_SET_CONTENT);
Valid.notNull(cache, ErrorMessage.FILE_ABSENT); Valid.notNull(cache, ErrorMessage.FILE_ABSENT);
// 删除缓存 // 删除缓存
RedisStrings.delete(key); RedisStrings.delete(key);
@@ -164,7 +164,7 @@ public class HostSftpServiceImpl implements HostSftpService {
InputStream in = null; InputStream in = null;
try { try {
// 获取终端连接信息 // 获取终端连接信息
HostTerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId()); TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId());
sessionStore = SessionStores.openSessionStore(connectInfo); sessionStore = SessionStores.openSessionStore(connectInfo);
executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset()); executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset());
executor.connect(); executor.connect();
@@ -220,7 +220,7 @@ public class HostSftpServiceImpl implements HostSftpService {
query.setLimit(request.getLimit()); query.setLimit(request.getLimit());
if (Strings.isBlank(type)) { if (Strings.isBlank(type)) {
// 查询全部 SFTP 类型 // 查询全部 SFTP 类型
query.setTypeList(HostTerminalOperatorType.SFTP_TYPES); query.setTypeList(TerminalOperatorType.SFTP_TYPES);
} else { } else {
query.setType(type); query.setType(type);
} }

View File

@@ -36,7 +36,7 @@ import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogQueryR
import com.orion.visor.module.asset.entity.vo.TerminalConnectLogVO; import com.orion.visor.module.asset.entity.vo.TerminalConnectLogVO;
import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum; import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum;
import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum; import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum;
import com.orion.visor.module.asset.handler.host.terminal.manager.HostTerminalManager; import com.orion.visor.module.asset.handler.host.terminal.manager.TerminalManager;
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalConfig; import com.orion.visor.module.asset.handler.host.terminal.model.TerminalConfig;
import com.orion.visor.module.asset.handler.host.terminal.session.ITerminalSession; import com.orion.visor.module.asset.handler.host.terminal.session.ITerminalSession;
import com.orion.visor.module.asset.service.TerminalConnectLogService; import com.orion.visor.module.asset.service.TerminalConnectLogService;
@@ -67,7 +67,7 @@ public class TerminalConnectLogServiceImpl implements TerminalConnectLogService
private TerminalConnectLogDAO terminalConnectLogDAO; private TerminalConnectLogDAO terminalConnectLogDAO;
@Resource @Resource
private HostTerminalManager hostTerminalManager; private TerminalManager terminalManager;
@Override @Override
public TerminalConnectLogDO create(TerminalConnectTypeEnum type, TerminalConnectLogCreateRequest request) { public TerminalConnectLogDO create(TerminalConnectTypeEnum type, TerminalConnectLogCreateRequest request) {
@@ -103,7 +103,7 @@ public class TerminalConnectLogServiceImpl implements TerminalConnectLogService
@Override @Override
public List<TerminalConnectLogVO> getTerminalConnectSessions(TerminalConnectLogQueryRequest request) { public List<TerminalConnectLogVO> getTerminalConnectSessions(TerminalConnectLogQueryRequest request) {
// 查询全部 // 查询全部
List<Long> idList = hostTerminalManager.getChannelSessions() List<Long> idList = terminalManager.getChannelSessions()
.values() .values()
.stream() .stream()
.map(ConcurrentHashMap::values) .map(ConcurrentHashMap::values)
@@ -246,7 +246,7 @@ public class TerminalConnectLogServiceImpl implements TerminalConnectLogService
OperatorLogs.add(OperatorLogs.HOST_NAME, record.getHostName()); OperatorLogs.add(OperatorLogs.HOST_NAME, record.getHostName());
// 获取会话 // 获取会话
TerminalConnectLogExtraDTO extra = JSON.parseObject(record.getExtraInfo(), TerminalConnectLogExtraDTO.class); TerminalConnectLogExtraDTO extra = JSON.parseObject(record.getExtraInfo(), TerminalConnectLogExtraDTO.class);
ITerminalSession session = hostTerminalManager.getSession(extra.getChannelId(), extra.getSessionId()); ITerminalSession session = terminalManager.getSession(extra.getChannelId(), extra.getSessionId());
if (session != null) { if (session != null) {
// 关闭会话 // 关闭会话
session.forceOffline(); session.forceOffline();

View File

@@ -26,14 +26,14 @@ import com.orion.visor.framework.security.core.utils.SecurityUtils;
import com.orion.visor.module.asset.dao.HostDAO; import com.orion.visor.module.asset.dao.HostDAO;
import com.orion.visor.module.asset.dao.HostIdentityDAO; import com.orion.visor.module.asset.dao.HostIdentityDAO;
import com.orion.visor.module.asset.dao.HostKeyDAO; import com.orion.visor.module.asset.dao.HostKeyDAO;
import com.orion.visor.module.asset.define.cache.HostTerminalCacheKeyDefine; import com.orion.visor.module.asset.define.cache.TerminalCacheKeyDefine;
import com.orion.visor.module.asset.entity.domain.HostDO; import com.orion.visor.module.asset.entity.domain.HostDO;
import com.orion.visor.module.asset.entity.domain.HostIdentityDO; import com.orion.visor.module.asset.entity.domain.HostIdentityDO;
import com.orion.visor.module.asset.entity.domain.HostKeyDO; import com.orion.visor.module.asset.entity.domain.HostKeyDO;
import com.orion.visor.module.asset.entity.dto.HostTerminalAccessDTO; import com.orion.visor.module.asset.entity.dto.TerminalAccessDTO;
import com.orion.visor.module.asset.entity.dto.HostTerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO;
import com.orion.visor.module.asset.entity.dto.HostTerminalTransferDTO; import com.orion.visor.module.asset.entity.dto.TerminalTransferDTO;
import com.orion.visor.module.asset.entity.vo.HostTerminalThemeVO; import com.orion.visor.module.asset.entity.vo.TerminalThemeVO;
import com.orion.visor.module.asset.enums.*; import com.orion.visor.module.asset.enums.*;
import com.orion.visor.module.asset.handler.host.config.model.HostSshConfigModel; import com.orion.visor.module.asset.handler.host.config.model.HostSshConfigModel;
import com.orion.visor.module.asset.handler.host.extra.model.HostSshExtraModel; import com.orion.visor.module.asset.handler.host.extra.model.HostSshExtraModel;
@@ -89,14 +89,14 @@ public class TerminalServiceImpl implements TerminalService {
private DictValueApi dictValueApi; private DictValueApi dictValueApi;
@Override @Override
public List<HostTerminalThemeVO> getTerminalThemes() { public List<TerminalThemeVO> getTerminalThemes() {
// if (true) { // if (true) {
// String arr = ""; // String arr = "";
// return JSON.parseArray(arr, HostTerminalThemeVO.class); // return JSON.parseArray(arr, HostTerminalThemeVO.class);
// } // }
List<JSONObject> themes = dictValueApi.getDictValue(THEME_DICT_KEY); List<JSONObject> themes = dictValueApi.getDictValue(THEME_DICT_KEY);
return themes.stream() return themes.stream()
.map(s -> HostTerminalThemeVO.builder() .map(s -> TerminalThemeVO.builder()
.name(s.getString(ExtraFieldConst.LABEL)) .name(s.getString(ExtraFieldConst.LABEL))
.dark(s.getBoolean(ExtraFieldConst.DARK)) .dark(s.getBoolean(ExtraFieldConst.DARK))
.schema(s.getJSONObject(ExtraFieldConst.VALUE)) .schema(s.getJSONObject(ExtraFieldConst.VALUE))
@@ -109,13 +109,13 @@ public class TerminalServiceImpl implements TerminalService {
LoginUser user = Valid.notNull(SecurityUtils.getLoginUser()); LoginUser user = Valid.notNull(SecurityUtils.getLoginUser());
log.info("HostTerminalService.getTerminalAccessToken userId: {}", user.getId()); log.info("HostTerminalService.getTerminalAccessToken userId: {}", user.getId());
String accessToken = UUIds.random19(); String accessToken = UUIds.random19();
HostTerminalAccessDTO access = HostTerminalAccessDTO.builder() TerminalAccessDTO access = TerminalAccessDTO.builder()
.userId(user.getId()) .userId(user.getId())
.username(user.getUsername()) .username(user.getUsername())
.build(); .build();
// 设置 access 缓存 // 设置 access 缓存
String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS.format(accessToken); String key = TerminalCacheKeyDefine.TERMINAL_ACCESS.format(accessToken);
RedisStrings.setJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS, access); RedisStrings.setJson(key, TerminalCacheKeyDefine.TERMINAL_ACCESS, access);
return accessToken; return accessToken;
} }
@@ -124,21 +124,21 @@ public class TerminalServiceImpl implements TerminalService {
LoginUser user = Valid.notNull(SecurityUtils.getLoginUser()); LoginUser user = Valid.notNull(SecurityUtils.getLoginUser());
log.info("HostTerminalService.getTerminalTransferToken userId: {}", user.getId()); log.info("HostTerminalService.getTerminalTransferToken userId: {}", user.getId());
String transferToken = UUIds.random19(); String transferToken = UUIds.random19();
HostTerminalTransferDTO transfer = HostTerminalTransferDTO.builder() TerminalTransferDTO transfer = TerminalTransferDTO.builder()
.userId(user.getId()) .userId(user.getId())
.username(user.getUsername()) .username(user.getUsername())
.build(); .build();
// 设置 transfer 缓存 // 设置 transfer 缓存
String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_TRANSFER.format(transferToken); String key = TerminalCacheKeyDefine.TERMINAL_TRANSFER.format(transferToken);
RedisStrings.setJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_TRANSFER, transfer); RedisStrings.setJson(key, TerminalCacheKeyDefine.TERMINAL_TRANSFER, transfer);
return transferToken; return transferToken;
} }
@Override @Override
public HostTerminalAccessDTO getAccessInfoByToken(String token) { public TerminalAccessDTO getAccessInfoByToken(String token) {
// 获取缓存 // 获取缓存
String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS.format(token); String key = TerminalCacheKeyDefine.TERMINAL_ACCESS.format(token);
HostTerminalAccessDTO access = RedisStrings.getJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS); TerminalAccessDTO access = RedisStrings.getJson(key, TerminalCacheKeyDefine.TERMINAL_ACCESS);
// 删除缓存 // 删除缓存
if (access != null) { if (access != null) {
RedisStrings.delete(key); RedisStrings.delete(key);
@@ -147,10 +147,10 @@ public class TerminalServiceImpl implements TerminalService {
} }
@Override @Override
public HostTerminalTransferDTO getTransferInfoByToken(String token) { public TerminalTransferDTO getTransferInfoByToken(String token) {
// 获取缓存 // 获取缓存
String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_TRANSFER.format(token); String key = TerminalCacheKeyDefine.TERMINAL_TRANSFER.format(token);
HostTerminalTransferDTO transfer = RedisStrings.getJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_TRANSFER); TerminalTransferDTO transfer = RedisStrings.getJson(key, TerminalCacheKeyDefine.TERMINAL_TRANSFER);
// 删除缓存 // 删除缓存
if (transfer != null) { if (transfer != null) {
RedisStrings.delete(key); RedisStrings.delete(key);
@@ -159,7 +159,7 @@ public class TerminalServiceImpl implements TerminalService {
} }
@Override @Override
public HostTerminalConnectDTO getTerminalConnectInfo(Long hostId) { public TerminalConnectDTO getTerminalConnectInfo(Long hostId) {
log.info("HostTerminalService.getTerminalConnectInfo-withHost hostId: {}", hostId); log.info("HostTerminalService.getTerminalConnectInfo-withHost hostId: {}", hostId);
// 查询主机 // 查询主机
HostDO host = hostDAO.selectById(hostId); HostDO host = hostDAO.selectById(hostId);
@@ -170,7 +170,7 @@ public class TerminalServiceImpl implements TerminalService {
} }
@Override @Override
public HostTerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId) { public TerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId) {
// 查询主机 // 查询主机
HostDO host = hostDAO.selectById(hostId); HostDO host = hostDAO.selectById(hostId);
Valid.notNull(host, ErrorMessage.HOST_ABSENT); Valid.notNull(host, ErrorMessage.HOST_ABSENT);
@@ -179,7 +179,7 @@ public class TerminalServiceImpl implements TerminalService {
} }
@Override @Override
public HostTerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host) { public TerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host) {
Long hostId = host.getId(); Long hostId = host.getId();
log.info("HostTerminalService.getTerminalConnectInfo hostId: {}, userId: {}", hostId, userId); log.info("HostTerminalService.getTerminalConnectInfo hostId: {}, userId: {}", hostId, userId);
// 验证主机是否有权限 // 验证主机是否有权限
@@ -220,11 +220,11 @@ public class TerminalServiceImpl implements TerminalService {
* @param extra extra * @param extra extra
* @return session * @return session
*/ */
private HostTerminalConnectDTO getHostConnectInfo(HostDO host, private TerminalConnectDTO getHostConnectInfo(HostDO host,
HostSshConfigModel config, HostSshConfigModel config,
HostSshExtraModel extra) { HostSshExtraModel extra) {
// 填充认证信息 // 填充认证信息
HostTerminalConnectDTO conn = new HostTerminalConnectDTO(); TerminalConnectDTO conn = new TerminalConnectDTO();
conn.setHostId(host.getId()); conn.setHostId(host.getId());
conn.setHostName(host.getName()); conn.setHostName(host.getName());
conn.setHostAddress(host.getAddress()); conn.setHostAddress(host.getAddress());

View File

@@ -44,7 +44,7 @@ public class TerminalConnectLogAutoClearTask {
/** /**
* 分布式锁名称 * 分布式锁名称
*/ */
private static final String LOCK_KEY = "clear:hcl:lock"; private static final String LOCK_KEY = "clear:tcl:lock";
@Resource @Resource
private AppTerminalConnectLogAutoClearConfig appTerminalConnectLogAutoClearConfig; private AppTerminalConnectLogAutoClearConfig appTerminalConnectLogAutoClearConfig;

View File

@@ -61,13 +61,13 @@ export function getTerminalTransferToken() {
/** /**
* 打开终端 websocket * 打开终端 websocket
*/ */
export const openHostTerminalChannel = (accessToken: string) => { export const openTerminalAccessChannel = (accessToken: string) => {
return createAppWebSocket(`/host/terminal/${accessToken}`); return createAppWebSocket(`/terminal/access/${accessToken}`);
}; };
/** /**
* 打开终端传输 websocket * 打开终端传输 websocket
*/ */
export const openHostTransferChannel = (accessToken: string) => { export const openTerminalTransferChannel = (accessToken: string) => {
return createAppWebSocket(`/host/transfer/${accessToken}`); return createAppWebSocket(`/terminal/transfer/${accessToken}`);
}; };

View File

@@ -1,7 +1,7 @@
import type { ISftpTransferHandler, ISftpTransferManager, SftpFile, SftpTransferItem, TransferOperatorResponse } from '../types/define'; import type { ISftpTransferHandler, ISftpTransferManager, SftpFile, SftpTransferItem, TransferOperatorResponse } from '../types/define';
import { sessionCloseMsg, TransferReceiver, TransferStatus, TransferType } from '../types/const'; import { sessionCloseMsg, TransferReceiver, TransferStatus, TransferType } from '../types/const';
import { Message } from '@arco-design/web-vue'; import { Message } from '@arco-design/web-vue';
import { getTerminalTransferToken, openHostTransferChannel } from '@/api/asset/terminal'; import { getTerminalTransferToken, openTerminalTransferChannel } from '@/api/asset/terminal';
import { nextId } from '@/utils'; import { nextId } from '@/utils';
import SftpTransferUploader from './sftp-transfer-uploader'; import SftpTransferUploader from './sftp-transfer-uploader';
import SftpTransferDownloader from './sftp-transfer-downloader'; import SftpTransferDownloader from './sftp-transfer-downloader';
@@ -109,7 +109,7 @@ export default class SftpTransferManager implements ISftpTransferManager {
const { data: transferToken } = await getTerminalTransferToken(); const { data: transferToken } = await getTerminalTransferToken();
// 打开会话 // 打开会话
try { try {
this.client = await openHostTransferChannel(transferToken); this.client = await openTerminalTransferChannel(transferToken);
} catch (e) { } catch (e) {
// 打开失败将传输列表置为失效 // 打开失败将传输列表置为失效
Message.error('会话打开失败'); Message.error('会话打开失败');

View File

@@ -2,7 +2,7 @@ import type { ITerminalChannel, ITerminalOutputProcessor, ITerminalSessionManage
import type { InputPayload, Protocol } from '@/types/protocol/terminal.protocol'; import type { InputPayload, Protocol } from '@/types/protocol/terminal.protocol';
import { format, OutputProtocol, parse } from '@/types/protocol/terminal.protocol'; import { format, OutputProtocol, parse } from '@/types/protocol/terminal.protocol';
import { sessionCloseMsg } from '../types/const'; import { sessionCloseMsg } from '../types/const';
import { getTerminalAccessToken, openHostTerminalChannel } from '@/api/asset/terminal'; import { getTerminalAccessToken, openTerminalAccessChannel } from '@/api/asset/terminal';
import { Message } from '@arco-design/web-vue'; import { Message } from '@arco-design/web-vue';
import TerminalOutputProcessor from './terminal-output-processor'; import TerminalOutputProcessor from './terminal-output-processor';
@@ -26,7 +26,7 @@ export default class TerminalChannel implements ITerminalChannel {
const { data: accessToken } = await getTerminalAccessToken(); const { data: accessToken } = await getTerminalAccessToken();
// 打开会话 // 打开会话
try { try {
this.client = await openHostTerminalChannel(accessToken); this.client = await openTerminalAccessChannel(accessToken);
} catch (e) { } catch (e) {
Message.error('无法连接至服务器'); Message.error('无法连接至服务器');
console.error('terminal error', e); console.error('terminal error', e);