diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/entity/vo/AppInfoVO.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/entity/vo/AppInfoVO.java index 86ce5cb3..cb6c115e 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/entity/vo/AppInfoVO.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/entity/vo/AppInfoVO.java @@ -49,7 +49,4 @@ public class AppInfoVO implements Serializable { @Schema(description = "系统版本") private String version; - @Schema(description = "机器码") - private String uuid; - } diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/SystemSettingServiceImpl.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/SystemSettingServiceImpl.java index 8c225d25..e40d0e5c 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/SystemSettingServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/SystemSettingServiceImpl.java @@ -45,7 +45,6 @@ import org.dromara.visor.module.infra.entity.request.system.SystemSettingUpdateR import org.dromara.visor.module.infra.entity.vo.AppInfoVO; import org.dromara.visor.module.infra.entity.vo.RsaKeyPairVO; import org.dromara.visor.module.infra.service.SystemSettingService; -import org.dromara.visor.module.infra.utils.SystemUuidUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -73,7 +72,6 @@ public class SystemSettingServiceImpl implements SystemSettingService { public AppInfoVO getAppInfo() { return AppInfoVO.builder() .version(AppConst.VERSION) - .uuid(SystemUuidUtils.getSystemUuid()) .build(); } diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/utils/SystemUuidUtils.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/utils/SystemUuidUtils.java deleted file mode 100644 index 2876044f..00000000 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/utils/SystemUuidUtils.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2023 - present Dromara, All rights reserved. - * - * https://visor.dromara.org - * https://visor.dromara.org.cn - * https://visor.orionsec.cn - * - * Members: - * Jiahang Li - ljh1553488six@139.com - author - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.dromara.visor.module.infra.utils; - -import cn.orionsec.kit.ext.process.ProcessAwaitExecutor; -import cn.orionsec.kit.lang.support.Attempt; -import cn.orionsec.kit.lang.utils.Arrays1; -import cn.orionsec.kit.lang.utils.Strings; -import cn.orionsec.kit.lang.utils.crypto.Signatures; -import cn.orionsec.kit.lang.utils.io.Streams; -import org.dromara.visor.common.constant.Const; - -import java.io.ByteArrayOutputStream; - -/** - * 系统 UUID 工具类 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2025/1/16 11:07 - */ -public class SystemUuidUtils { - - private static String uuid; - - private SystemUuidUtils() { - } - - /** - * 获取系统 uuid - * - * @return uuid - */ - public static String getSystemUuid() { - if (SystemUuidUtils.uuid != null) { - return SystemUuidUtils.uuid; - } - String[][] cmd = new String[][]{ - new String[]{"/bin/sh", "-c", "cat /sys/class/dmi/id/product_serial"}, - new String[]{"/bin/bash", "-c", "cat /sys/class/dmi/id/product_serial"}, - new String[]{"/bin/sh", "-c", "dmidecode -s system-uuid"}, - new String[]{"/bin/bash", "-c", "dmidecode -s system-uuid"}, - new String[]{"cmd", "/c", "wmic csproduct get uuid"} - }; - for (String[] s : cmd) { - try { - String uuid = SystemUuidUtils.getCommandOutput(s); - if (Strings.isBlank(uuid)) { - continue; - } - // 去除符号并且转为大写 - uuid = uuid.replaceAll(Const.DASHED, Const.EMPTY) - .toUpperCase() - .trim(); - // 去除 \n - String extraUuid = Arrays1.last(uuid.trim().split(Const.LF)); - if (!Strings.isBlank(extraUuid)) { - uuid = extraUuid.trim(); - } - // 去除 : - extraUuid = Arrays1.last(uuid.trim().split(Const.COLON)); - if (!Strings.isBlank(extraUuid)) { - uuid = extraUuid.trim(); - } - return SystemUuidUtils.uuid = Signatures.md5(uuid); - } catch (Exception e) { - // IGNORED - } - } - return SystemUuidUtils.uuid = Const.UNKNOWN; - } - - /** - * 获取输出结果 - * - * @param command command - * @return result - */ - public static String getCommandOutput(String[] command) { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - ProcessAwaitExecutor executor = new ProcessAwaitExecutor(command); - try { - executor.streamHandler(i -> Attempt.uncheck(Streams::transfer, i, out)) - .waitFor() - .sync() - .exec(); - return out.toString(); - } finally { - Streams.close(out); - Streams.close(executor); - } - } - -} diff --git a/orion-visor-ui/src/api/system/setting.ts b/orion-visor-ui/src/api/system/setting.ts index b193c956..2c9b3234 100644 --- a/orion-visor-ui/src/api/system/setting.ts +++ b/orion-visor-ui/src/api/system/setting.ts @@ -15,7 +15,6 @@ export interface SystemSettingUpdateRequest { */ export interface AppInfoResponse { version: string; - uuid: string; } /** diff --git a/orion-visor-ui/src/views/asset/host-list/components/host-form-rdp.vue b/orion-visor-ui/src/views/asset/host-list/components/host-form-rdp.vue index 942ace48..eadea2fd 100644 --- a/orion-visor-ui/src/views/asset/host-list/components/host-form-rdp.vue +++ b/orion-visor-ui/src/views/asset/host-list/components/host-form-rdp.vue @@ -61,6 +61,7 @@ - - - - {{ app.uuid }} - - @@ -66,7 +60,6 @@ const app = ref({ version: '', - uuid: '', }); const repo = ref({ diff --git a/orion-visor-ui/src/views/terminal/service/transfer/rdp-transfer-manager.ts b/orion-visor-ui/src/views/terminal/service/transfer/rdp-transfer-manager.ts index ed04e56f..46a30080 100644 --- a/orion-visor-ui/src/views/terminal/service/transfer/rdp-transfer-manager.ts +++ b/orion-visor-ui/src/views/terminal/service/transfer/rdp-transfer-manager.ts @@ -1,6 +1,6 @@ import type { IRdpTransferManager, IRdpSession } from '@/views/terminal/interfaces'; import type Guacamole from 'guacamole-common-js'; -import { TerminalMessages } from '../../types/const'; +import { TerminalMessages, TransferStatus } from '../../types/const'; import { Message } from '@arco-design/web-vue'; import BaseTransferManager from './base-transfer-manager'; import RdpFileDownloadTask from './rdp-file-download-task'; @@ -62,6 +62,7 @@ export default class RdpTransferManager extends BaseTransferManager implements I // 通过 sessionKey 关闭 closeBySessionKey(sessionKey: string): void { this.tasks.filter(s => s.sessionKey === sessionKey) + .filter(s => s.state.status === TransferStatus.WAITING || s.state.status === TransferStatus.TRANSFERRING) .forEach(s => s.onError(TerminalMessages.sessionClosed)); }