重写复现方法

This commit is contained in:
2025-09-05 17:04:10 +08:00
parent 09cd62efd7
commit bc0ac4e552
5 changed files with 107 additions and 57 deletions

View File

@@ -0,0 +1,15 @@
package com.mini.capi.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class TokenBean {
@Value("${security.default-token}")
private String defaultToken;
public boolean isValidToken(String token) {
return !defaultToken.equals(token);
}
}

View File

@@ -1,24 +1,22 @@
package com.mini.capi.sys.Api;
import com.mini.capi.config.TokenBean;
import com.mini.capi.model.ApiResult;
import com.mini.capi.model.TabResult;
import com.mini.capi.sys.domain.TableInfo;
import com.mini.capi.sys.service.DataService;
import com.mini.capi.sys.service.DbService;
import com.mini.capi.sys.service.DockerService;
import com.mini.capi.sys.service.HostService;
import com.mini.capi.utils.vToken;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/Sys/api")
public class apiController {
@Resource
private TokenBean tokenBean;
@Resource
private DbService dbService;
@@ -26,53 +24,16 @@ public class apiController {
@Resource
private HostService hostService;
@Resource
private DataService dataService;
@Resource
private DockerService dockerService;
/**
* 获取表的结构和字段
*/
@GetMapping("/getTableDetail")
public ApiResult<TableInfo> getTableDetail(String token, String taskId) {
if (vToken.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dataService.getTableDetail(taskId);
}
/**
* 获取MySQL的当前连接下的所有数据表
*/
@GetMapping("/getSourceTables")
public ApiResult<List<TabResult>> listSourceTables(String token, String dbId) {
// 1. 验证token有效性
if (vToken.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dbService.listSourceTables(dbId);
}
@GetMapping("/getInfo")
public ApiResult<List<HostService.SnapshotDTO>> getApiInfo(String token) {
if (vToken.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return hostService.getApiInfo();
}
/**
* 获取容器列表
*/
@GetMapping("/getDockerInfo")
@GetMapping("/DockerInfo")
public ApiResult<?> getDockerInfo(String token) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return hostService.getDockerInfo();
@@ -82,9 +43,9 @@ public class apiController {
/**
* 启动容器
*/
@GetMapping("/getStartDockerInfo")
@GetMapping("/StartDockerInfo")
public ApiResult<?> startDockerInfo(String id, String token) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return hostService.startDockerInfo(id);
@@ -94,9 +55,9 @@ public class apiController {
/**
* 停止容器
*/
@GetMapping("/getStopDockerInfo")
@GetMapping("/StopDockerInfo")
public ApiResult<?> stopDockerInfo(String id, String token) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return hostService.stopDockerInfo(id);
@@ -106,9 +67,9 @@ public class apiController {
/**
* 获取容器主机的磁盘使用情况
*/
@GetMapping("/getTaskDockerDiskInfo")
@GetMapping("/TaskDockerDiskInfo")
public ApiResult<?> getTaskDockerDiskInfo(String token) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dockerService.jobHostDisk();
@@ -118,9 +79,9 @@ public class apiController {
/**
* 运行全部任务数据同步
*/
@GetMapping("/getTaskSyncDbInfo")
@GetMapping("/TaskSyncDbInfo")
public ApiResult<?> getTaskSyncDbInfo(String token) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dbService.jobSyncAllTask();
@@ -129,9 +90,9 @@ public class apiController {
/**
* 运行单个任务
*/
@GetMapping("/getTaskSyncDbByInfo")
@GetMapping("/TaskSyncDbByInfo")
public ApiResult<?> getTaskSyncDbByInfo(String token, String taskId) {
if (vToken.isValidToken(token)) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dbService.jobSyncOneTask(taskId);

View File

@@ -0,0 +1,66 @@
package com.mini.capi.sys.Api;
import com.mini.capi.config.TokenBean;
import com.mini.capi.model.ApiResult;
import com.mini.capi.model.TabResult;
import com.mini.capi.sys.domain.TableInfo;
import com.mini.capi.sys.service.DataService;
import com.mini.capi.sys.service.DbService;
import com.mini.capi.sys.service.HostService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/Sys/apiList")
public class listController {
@Resource
private TokenBean tokenBean;
@Resource
private HostService hostService;
@Resource
private DbService dbService;
@Resource
private DataService dataService;
/**
* 获取表的结构和字段
*/
@GetMapping("/getTableDetail")
public ApiResult<TableInfo> getTableDetail(String token, String taskId) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dataService.getTableDetail(taskId);
}
/**
* 获取MySQL的当前连接下的所有数据表
*/
@GetMapping("/getSourceTables")
public ApiResult<List<TabResult>> listSourceTables(String token, String dbId) {
// 1. 验证token有效性
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return dbService.listSourceTables(dbId);
}
@GetMapping("/getCpuInfo")
public ApiResult<List<HostService.SnapshotDTO>> getApiInfo(String token) {
if (tokenBean.isValidToken(token)) {
return ApiResult.error(401, "无效的访问令牌");
}
return hostService.getApiInfo();
}
}

View File

@@ -1,13 +1,18 @@
package com.mini.capi.utils;
import com.mini.capi.config.TokenBean;
import jakarta.annotation.Resource;
public class vToken {
private static final String DEFAULT_TOKEN = "3774e79ac55aff6d1afc0f94bfaf131d";
@Resource
private TokenBean tokenConfig;
public static boolean isValidToken(String token) {
return !DEFAULT_TOKEN.equals(token);
public boolean isValidToken(String token) {
return tokenConfig.isValidToken(token);
}

View File

@@ -20,3 +20,6 @@ logging.level.root=INFO
logging.level.com.example.webssh=DEBUG
logging.file.name=logs/webssh.log
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
security.default-token=3774e79ac55aff6d1afc0f94bfaf131d