From d6c5ab4d98b5625f6ceca81c88c9e1ac92174f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=B2=E5=85=88=E7=94=9F?= <821039958@qq.com> Date: Mon, 21 Jul 2025 17:28:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=BB=E6=9C=BA=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=8E=A5=E5=8F=A3=EF=BC=8C=E7=A7=98=E9=92=A5=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../machine/enums/AuthenticationType.java | 13 +++++++ .../controller/TerminalController.java | 8 +++++ .../controller/dto/TerminalConnectDTO.java | 4 --- .../terminal/host/jsch/SessionStores.java | 6 ++-- .../handler/TerminalCheckHandler.java | 8 ++--- .../terminal/service/HostConnectService.java | 8 +++++ .../service/impl/HostConnectServiceImpl.java | 25 ++++++++++---- .../service/impl/TerminalService.java | 34 +++++++++++++++++++ 8 files changed, 87 insertions(+), 19 deletions(-) diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/AuthenticationType.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/AuthenticationType.java index 71f8314c..b73aab7e 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/AuthenticationType.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/AuthenticationType.java @@ -22,4 +22,17 @@ public enum AuthenticationType implements IntArrayValuable { public int[] array() { return ARRAYS; } + + public static AuthenticationType of(int code) { + if (code == 0) { + return null; + } + for (AuthenticationType value : values()) { + if (value.code==code) { + return value; + } + } + return null; + } + } diff --git a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/TerminalController.java b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/TerminalController.java index 1e893d80..edf903fc 100644 --- a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/TerminalController.java +++ b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/TerminalController.java @@ -9,6 +9,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import static cd.casic.framework.commons.pojo.CommonResult.success; @@ -42,5 +43,12 @@ public class TerminalController { return success(terminalService.getTerminalTransferToken()); } + @GetMapping("/test") + @Operation(summary = "测试主机连接") +// @PreAuthorize("@ss.hasPermission('asset:host:update')") + public CommonResult testHostConnect(@RequestParam Long id) { + return terminalService.testHostConnect(id); + } + } diff --git a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/dto/TerminalConnectDTO.java b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/dto/TerminalConnectDTO.java index 6ef29bd6..3d2022fd 100644 --- a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/dto/TerminalConnectDTO.java +++ b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/controller/dto/TerminalConnectDTO.java @@ -64,22 +64,18 @@ public class TerminalConnectDTO { @Schema(description = "用户名") private String username; -// @Desensitize(toEmpty = true) @Schema(description = "密码") private String password; @Schema(description = "密钥id") private Long keyId; -// @Desensitize(toEmpty = true) @Schema(description = "公钥文本") private String publicKey; -// @Desensitize(toEmpty = true) @Schema(description = "私钥文本") private String privateKey; -// @Desensitize(toEmpty = true) @Schema(description = "私钥密码") private String privateKeyPassword; diff --git a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/jsch/SessionStores.java b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/jsch/SessionStores.java index 31df4aa4..109fb17f 100644 --- a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/jsch/SessionStores.java +++ b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/jsch/SessionStores.java @@ -73,13 +73,13 @@ public class SessionStores { if (useKey) { // 加载密钥 String publicKey = Optional.ofNullable(conn.getPublicKey()) - .map(CryptogramUtil::doDecrypt) + .map(obj->CryptogramUtil.doDecrypt(obj)) .orElse(null); String privateKey = Optional.ofNullable(conn.getPrivateKey()) - .map(CryptogramUtil::doDecrypt) + .map(obj->CryptogramUtil.doDecrypt(obj)) .orElse(null); String password = Optional.ofNullable(conn.getPrivateKeyPassword()) - .map(CryptogramUtil::doDecrypt) + .map(obj->CryptogramUtil.doDecrypt(obj)) .orElse(null); sessionHolder.addIdentityValue(String.valueOf(conn.getKeyId()), privateKey, diff --git a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/terminal/handler/TerminalCheckHandler.java b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/terminal/handler/TerminalCheckHandler.java index 8134cf29..9d0665cf 100644 --- a/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/terminal/handler/TerminalCheckHandler.java +++ b/modules/module-ci-terminal/src/main/java/cd/casic/module/terminal/host/terminal/handler/TerminalCheckHandler.java @@ -33,9 +33,9 @@ import java.util.Map; /** * 终端连接检查 * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023/12/29 15:32 + * @author Yuru Pu + * @version 1.0 + * @since 2025/7/21 14:17 */ @Slf4j @Component @@ -50,8 +50,6 @@ public class TerminalCheckHandler extends AbstractTerminalHandler