From dae142e434f57748584caf33e739efa5a544bacb Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Wed, 27 Dec 2023 23:09:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BF=9E=E6=8E=A5=E4=B8=BB=E6=9C=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../asset/convert/HostConnectLogConvert.java | 3 +++ .../asset/entity/dto/HostSshConnectDTO.java | 2 +- .../host/HostConnectLogCreateRequest.java | 9 +++++---- .../service/impl/HostTerminalServiceImpl.java | 17 ++++++++++------- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 2b78e4ad..c8088e13 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ .log +.flattened-pom.xml ### STS ### .apt_generated diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/convert/HostConnectLogConvert.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/convert/HostConnectLogConvert.java index db99af62..66760df4 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/convert/HostConnectLogConvert.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/convert/HostConnectLogConvert.java @@ -1,6 +1,7 @@ package com.orion.ops.module.asset.convert; import com.orion.ops.module.asset.entity.domain.HostConnectLogDO; +import com.orion.ops.module.asset.entity.dto.HostSshConnectDTO; import com.orion.ops.module.asset.entity.request.host.HostConnectLogCreateRequest; import com.orion.ops.module.asset.entity.request.host.HostConnectLogQueryRequest; import com.orion.ops.module.asset.entity.vo.HostConnectLogVO; @@ -27,6 +28,8 @@ public interface HostConnectLogConvert { HostConnectLogVO to(HostConnectLogDO domain); + HostConnectLogCreateRequest to(HostSshConnectDTO dto); + List to(List list); } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/dto/HostSshConnectDTO.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/dto/HostSshConnectDTO.java index 32fe90f4..ffc06851 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/dto/HostSshConnectDTO.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/dto/HostSshConnectDTO.java @@ -36,7 +36,7 @@ public class HostSshConnectDTO { private String hostName; @Schema(description = "主机地址") - private String address; + private String hostAddress; @Schema(description = "端口") private Integer port; diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostConnectLogCreateRequest.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostConnectLogCreateRequest.java index a53c89e0..0f367263 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostConnectLogCreateRequest.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostConnectLogCreateRequest.java @@ -1,8 +1,10 @@ package com.orion.ops.module.asset.entity.request.host; -import com.orion.ops.framework.common.entity.PageRequest; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; import javax.validation.constraints.Size; @@ -17,9 +19,8 @@ import javax.validation.constraints.Size; @Builder @NoArgsConstructor @AllArgsConstructor -@EqualsAndHashCode(callSuper = true) @Schema(name = "HostConnectLogCreateRequest", description = "主机连接日志 创建请求对象") -public class HostConnectLogCreateRequest extends PageRequest { +public class HostConnectLogCreateRequest { @Schema(description = "用户id") private Long userId; diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostTerminalServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostTerminalServiceImpl.java index b20c97ef..244f112e 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostTerminalServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostTerminalServiceImpl.java @@ -12,6 +12,7 @@ import com.orion.ops.framework.common.constant.ErrorMessage; import com.orion.ops.framework.common.utils.CryptoUtils; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisStrings; +import com.orion.ops.module.asset.convert.HostConnectLogConvert; import com.orion.ops.module.asset.dao.HostDAO; import com.orion.ops.module.asset.dao.HostIdentityDAO; import com.orion.ops.module.asset.dao.HostKeyDAO; @@ -20,10 +21,8 @@ import com.orion.ops.module.asset.entity.domain.HostDO; import com.orion.ops.module.asset.entity.domain.HostIdentityDO; import com.orion.ops.module.asset.entity.domain.HostKeyDO; import com.orion.ops.module.asset.entity.dto.HostSshConnectDTO; -import com.orion.ops.module.asset.enums.HostConfigTypeEnum; -import com.orion.ops.module.asset.enums.HostExtraItemEnum; -import com.orion.ops.module.asset.enums.HostExtraSshAuthTypeEnum; -import com.orion.ops.module.asset.enums.HostSshAuthTypeEnum; +import com.orion.ops.module.asset.entity.request.host.HostConnectLogCreateRequest; +import com.orion.ops.module.asset.enums.*; import com.orion.ops.module.asset.handler.host.config.model.HostSshConfigModel; import com.orion.ops.module.asset.handler.host.extra.model.HostSshExtraModel; import com.orion.ops.module.asset.service.HostConfigService; @@ -120,11 +119,14 @@ public class HostTerminalServiceImpl implements HostTerminalService { // 获取连接配置 HostSshConnectDTO connect = this.getHostConnectInfo(host, config, extra); connect.setUserId(userId); - connect.setUsername(user.getUsername()); connect.setToken(token); // 设置缓存 String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_CONNECT.format(token); RedisStrings.setJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_CONNECT, connect); + // 记录连接日志 + HostConnectLogCreateRequest log = HostConnectLogConvert.MAPPER.to(connect); + log.setUsername(user.getUsername()); + hostConnectLogService.create(HostConnectTypeEnum.SSH, log); // 设置日志参数 OperatorLogs.add(connect); return token; @@ -154,7 +156,7 @@ public class HostTerminalServiceImpl implements HostTerminalService { @Override public SessionStore openSessionStore(HostSshConnectDTO conn) { Long hostId = conn.getHostId(); - String address = conn.getAddress(); + String address = conn.getHostAddress(); String username = conn.getUsername(); log.info("HostConnectService-openSessionStore-start hostId: {}, address: {}, username: {}", hostId, address, username); try { @@ -236,7 +238,7 @@ public class HostTerminalServiceImpl implements HostTerminalService { HostSshConnectDTO conn = new HostSshConnectDTO(); conn.setHostId(host.getId()); conn.setHostName(host.getName()); - conn.setAddress(host.getAddress()); + conn.setHostAddress(host.getAddress()); conn.setPort(config.getPort()); conn.setTimeout(config.getConnectTimeout()); conn.setUsername(config.getUsername()); @@ -258,6 +260,7 @@ public class HostTerminalServiceImpl implements HostTerminalService { if (keyId != null) { HostKeyDO key = hostKeyDAO.selectById(keyId); Valid.notNull(key, ErrorMessage.KEY_ABSENT); + conn.setKeyId(keyId); conn.setPublicKey(key.getPublicKey()); conn.setPrivateKey(key.getPrivateKey()); conn.setPrivateKeyPassword(key.getPassword());