重写复现方法
This commit is contained in:
15
src/main/java/com/mini/capi/config/TokenBean.java
Normal file
15
src/main/java/com/mini/capi/config/TokenBean.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
package com.mini.capi.sys.Api;
|
package com.mini.capi.sys.Api;
|
||||||
|
|
||||||
|
import com.mini.capi.config.TokenBean;
|
||||||
import com.mini.capi.model.ApiResult;
|
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.DbService;
|
||||||
import com.mini.capi.sys.service.DockerService;
|
import com.mini.capi.sys.service.DockerService;
|
||||||
import com.mini.capi.sys.service.HostService;
|
import com.mini.capi.sys.service.HostService;
|
||||||
import com.mini.capi.utils.vToken;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/Sys/api")
|
@RequestMapping("/Sys/api")
|
||||||
public class apiController {
|
public class apiController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TokenBean tokenBean;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DbService dbService;
|
private DbService dbService;
|
||||||
@@ -26,53 +24,16 @@ public class apiController {
|
|||||||
@Resource
|
@Resource
|
||||||
private HostService hostService;
|
private HostService hostService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private DataService dataService;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DockerService dockerService;
|
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) {
|
public ApiResult<?> getDockerInfo(String token) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return hostService.getDockerInfo();
|
return hostService.getDockerInfo();
|
||||||
@@ -82,9 +43,9 @@ public class apiController {
|
|||||||
/**
|
/**
|
||||||
* 启动容器
|
* 启动容器
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getStartDockerInfo")
|
@GetMapping("/StartDockerInfo")
|
||||||
public ApiResult<?> startDockerInfo(String id, String token) {
|
public ApiResult<?> startDockerInfo(String id, String token) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return hostService.startDockerInfo(id);
|
return hostService.startDockerInfo(id);
|
||||||
@@ -94,9 +55,9 @@ public class apiController {
|
|||||||
/**
|
/**
|
||||||
* 停止容器
|
* 停止容器
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getStopDockerInfo")
|
@GetMapping("/StopDockerInfo")
|
||||||
public ApiResult<?> stopDockerInfo(String id, String token) {
|
public ApiResult<?> stopDockerInfo(String id, String token) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return hostService.stopDockerInfo(id);
|
return hostService.stopDockerInfo(id);
|
||||||
@@ -106,9 +67,9 @@ public class apiController {
|
|||||||
/**
|
/**
|
||||||
* 获取容器主机的磁盘使用情况
|
* 获取容器主机的磁盘使用情况
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getTaskDockerDiskInfo")
|
@GetMapping("/TaskDockerDiskInfo")
|
||||||
public ApiResult<?> getTaskDockerDiskInfo(String token) {
|
public ApiResult<?> getTaskDockerDiskInfo(String token) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return dockerService.jobHostDisk();
|
return dockerService.jobHostDisk();
|
||||||
@@ -118,9 +79,9 @@ public class apiController {
|
|||||||
/**
|
/**
|
||||||
* 运行全部任务数据同步
|
* 运行全部任务数据同步
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getTaskSyncDbInfo")
|
@GetMapping("/TaskSyncDbInfo")
|
||||||
public ApiResult<?> getTaskSyncDbInfo(String token) {
|
public ApiResult<?> getTaskSyncDbInfo(String token) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return dbService.jobSyncAllTask();
|
return dbService.jobSyncAllTask();
|
||||||
@@ -129,9 +90,9 @@ public class apiController {
|
|||||||
/**
|
/**
|
||||||
* 运行单个任务
|
* 运行单个任务
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getTaskSyncDbByInfo")
|
@GetMapping("/TaskSyncDbByInfo")
|
||||||
public ApiResult<?> getTaskSyncDbByInfo(String token, String taskId) {
|
public ApiResult<?> getTaskSyncDbByInfo(String token, String taskId) {
|
||||||
if (vToken.isValidToken(token)) {
|
if (tokenBean.isValidToken(token)) {
|
||||||
return ApiResult.error(401, "无效的访问令牌");
|
return ApiResult.error(401, "无效的访问令牌");
|
||||||
}
|
}
|
||||||
return dbService.jobSyncOneTask(taskId);
|
return dbService.jobSyncOneTask(taskId);
|
||||||
|
|||||||
66
src/main/java/com/mini/capi/sys/Api/listController.java
Normal file
66
src/main/java/com/mini/capi/sys/Api/listController.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
package com.mini.capi.utils;
|
package com.mini.capi.utils;
|
||||||
|
|
||||||
|
import com.mini.capi.config.TokenBean;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
public class vToken {
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,3 +20,6 @@ logging.level.root=INFO
|
|||||||
logging.level.com.example.webssh=DEBUG
|
logging.level.com.example.webssh=DEBUG
|
||||||
logging.file.name=logs/webssh.log
|
logging.file.name=logs/webssh.log
|
||||||
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
||||||
|
|
||||||
|
|
||||||
|
security.default-token=3774e79ac55aff6d1afc0f94bfaf131d
|
||||||
Reference in New Issue
Block a user