refactor: 重构终端连接流程.

This commit is contained in:
lijiahangmax
2024-01-05 23:28:36 +08:00
parent 98b014bb40
commit b160c6317e
21 changed files with 264 additions and 592 deletions

View File

@@ -1,7 +1,6 @@
package com.orion.ops.module.asset.controller;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.asset.entity.vo.HostTerminalAccessVO;
import com.orion.ops.module.asset.service.HostTerminalService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -36,7 +35,7 @@ public class HostTerminalController {
@GetMapping("/access")
@Operation(summary = "获取主机终端 accessToken")
@PreAuthorize("@ss.hasPermission('asset:host-terminal:access')")
public HostTerminalAccessVO getHostTerminalAccessToken() {
public String getHostTerminalAccessToken() {
return hostTerminalService.getHostTerminalAccessToken();
}

View File

@@ -1,33 +0,0 @@
package com.orion.ops.module.asset.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 主机终端访问 响应对象
*
* @author Jiahang Li
* @version 1.0.0
* @since 2024/1/4 15:42
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "HostTerminalAccessVO", description = "主机终端访问 响应对象")
public class HostTerminalAccessVO implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "accessToken")
private String accessToken;
@Schema(description = "session 起始量")
private String sessionInitial;
}

View File

@@ -4,7 +4,6 @@ import com.orion.net.host.SessionStore;
import com.orion.ops.module.asset.entity.domain.HostDO;
import com.orion.ops.module.asset.entity.dto.HostTerminalAccessDTO;
import com.orion.ops.module.asset.entity.dto.HostTerminalConnectDTO;
import com.orion.ops.module.asset.entity.vo.HostTerminalAccessVO;
/**
* 主机终端服务
@@ -18,9 +17,9 @@ public interface HostTerminalService {
/**
* 获取主机终端访问 accessToken
*
* @return session
* @return accessToken
*/
HostTerminalAccessVO getHostTerminalAccessToken();
String getHostTerminalAccessToken();
/**
* 通过 accessToken 获取主机终端访问信息

View File

@@ -22,7 +22,6 @@ 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.HostTerminalAccessDTO;
import com.orion.ops.module.asset.entity.dto.HostTerminalConnectDTO;
import com.orion.ops.module.asset.entity.vo.HostTerminalAccessVO;
import com.orion.ops.module.asset.enums.HostConfigTypeEnum;
import com.orion.ops.module.asset.enums.HostExtraItemEnum;
import com.orion.ops.module.asset.enums.HostExtraSshAuthTypeEnum;
@@ -83,7 +82,7 @@ public class HostTerminalServiceImpl implements HostTerminalService {
private SystemUserApi systemUserApi;
@Override
public HostTerminalAccessVO getHostTerminalAccessToken() {
public String getHostTerminalAccessToken() {
LoginUser user = SecurityUtils.getLoginUser();
log.info("HostConnectService.getHostAccessToken userId: {}", user.getId());
String accessToken = UUIds.random19();
@@ -94,11 +93,7 @@ public class HostTerminalServiceImpl implements HostTerminalService {
// 设置 access 缓存
String key = HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS.format(accessToken);
RedisStrings.setJson(key, HostTerminalCacheKeyDefine.HOST_TERMINAL_ACCESS, access);
return HostTerminalAccessVO.builder()
.accessToken(accessToken)
// 32 进制的 uuid 作为起始量
.sessionInitial(Long.toString(UUIds.random15Long(), 32))
.build();
return accessToken;
}
@Override