fix: runner, pcap, job 接口添加 workspaceId path 参数

This commit is contained in:
zhangshuai
2024-08-09 14:48:23 +08:00
parent 357ee0be62
commit 62ea5f5542
7 changed files with 65 additions and 34 deletions

View File

@@ -13,33 +13,38 @@ import org.springframework.web.bind.annotation.*;
import java.util.Map; import java.util.Map;
@RestController @RestController
@RequestMapping("/api/v1/job") @RequestMapping("/api/v1/{workspaceId}/job")
public class JobController { public class JobController {
@Autowired @Autowired
private IJobService jobService; private IJobService jobService;
@GetMapping("/{id}") @GetMapping("/{id}")
public R detail(@PathVariable("id") String id) { public R detail(@PathVariable String workspaceId,
JobEntity jobEntity = jobService.queryInfo(id); @PathVariable("id") String id) {
JobEntity jobEntity = jobService.queryInfo(id, workspaceId);
return R.ok().putData("record", jobEntity); return R.ok().putData("record", jobEntity);
} }
@GetMapping @GetMapping
public R list(@RequestParam Map<String, Object> params) { public R list(@PathVariable String workspaceId,
@RequestParam Map<String, Object> params) {
T.VerifyUtil.is(params).notNull() T.VerifyUtil.is(params).notNull()
.and(T.MapUtil.getStr(params, "workspaceId")).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
params.put("workspaceId", workspaceId);
Page page = jobService.queryList(params); Page page = jobService.queryList(params);
return R.ok(page); return R.ok(page);
} }
@PostMapping @PostMapping
public R add(@RequestBody JobEntity entity) { public R add(@PathVariable String workspaceId,
@RequestBody JobEntity entity) {
T.VerifyUtil.is(entity).notNull() T.VerifyUtil.is(entity).notNull()
.and(entity.getRunnerId()).notEmpty(RCode.RUNNER_ID_CANNOT_EMPTY) .and(entity.getRunnerId()).notEmpty(RCode.RUNNER_ID_CANNOT_EMPTY)
.and(entity.getPackageId()).notEmpty(RCode.PACKAGE_ID_CANNOT_EMPTY) .and(entity.getPackageId()).notEmpty(RCode.PACKAGE_ID_CANNOT_EMPTY)
.and(entity.getWorkspaceId()).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
entity.setWorkspaceId(workspaceId);
JobEntity jobEntity = jobService.saveJob(entity); JobEntity jobEntity = jobService.saveJob(entity);
return R.ok().putData("id", jobEntity.getId()); return R.ok().putData("id", jobEntity.getId());
} }

View File

@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
@RequestMapping("/api/v1/pcap") @RequestMapping("/api/v1/{workspaceId}/pcap")
public class PcapController { public class PcapController {
private static final Log log = Log.get(); private static final Log log = Log.get();
@@ -31,16 +31,19 @@ public class PcapController {
private IPcapService pcapService; private IPcapService pcapService;
@GetMapping("/{id}") @GetMapping("/{id}")
public R detail(@PathVariable("id") String id) { public R detail(@PathVariable String workspaceId,
PcapEntity pcapEntity = pcapService.queryInfo(id); @PathVariable("id") String id) {
PcapEntity pcapEntity = pcapService.queryInfo(id,workspaceId);
return R.ok().putData("record", pcapEntity); return R.ok().putData("record", pcapEntity);
} }
@GetMapping @GetMapping
public R list(@RequestParam Map<String, Object> params) { public R list(@PathVariable String workspaceId,
@RequestParam Map<String, Object> params) {
T.VerifyUtil.is(params).notNull() T.VerifyUtil.is(params).notNull()
.and(T.MapUtil.getStr(params, "workspaceId")).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
params.put("workspaceId",workspaceId);
Page page = pcapService.queryList(params); Page page = pcapService.queryList(params);
return R.ok(page); return R.ok(page);
} }

View File

@@ -3,6 +3,7 @@ package net.geedge.asw.module.runner.controller;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.lang.Opt; import cn.hutool.core.lang.Opt;
import cn.hutool.log.Log; import cn.hutool.log.Log;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@@ -23,7 +24,7 @@ import java.io.IOException;
import java.util.Map; import java.util.Map;
@RestController @RestController
@RequestMapping("/api/v1/runner") @RequestMapping("/api/v1/{workspaceId}/runner")
public class RunnerController { public class RunnerController {
private static final Log log = Log.get(); private static final Log log = Log.get();
@@ -35,35 +36,44 @@ public class RunnerController {
private IRunnerService runnerService; private IRunnerService runnerService;
@GetMapping("/{id}") @GetMapping("/{id}")
public R detail(@PathVariable("id") String id) { public R detail(@PathVariable String workspaceId,
RunnerEntity runnerEntity = runnerService.getById(id); @PathVariable("id") String id) {
RunnerEntity runnerEntity = runnerService.getOne(new LambdaQueryWrapper<RunnerEntity>()
.eq(RunnerEntity::getId, id)
.eq(RunnerEntity::getWorkspaceId, workspaceId));
return R.ok().putData("record", runnerEntity); return R.ok().putData("record", runnerEntity);
} }
@GetMapping @GetMapping
public R list(@RequestParam Map<String, Object> params) { public R list(@PathVariable String workspaceId,
@RequestParam Map<String, Object> params) {
T.VerifyUtil.is(params).notNull() T.VerifyUtil.is(params).notNull()
.and(T.MapUtil.getStr(params, "workspaceId")).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
params.put("workspaceId", workspaceId);
Page page = runnerService.queryList(params); Page page = runnerService.queryList(params);
return R.ok(page); return R.ok(page);
} }
@PostMapping @PostMapping
public R add(@RequestBody RunnerEntity entity) { public R add(@PathVariable String workspaceId,
@RequestBody RunnerEntity entity) {
T.VerifyUtil.is(entity).notNull() T.VerifyUtil.is(entity).notNull()
.and(entity.getWorkspaceId()).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
entity.setWorkspaceId(workspaceId);
RunnerEntity runner = runnerService.saveRunner(entity); RunnerEntity runner = runnerService.saveRunner(entity);
return R.ok().putData("record", runner); return R.ok().putData("record", runner);
} }
@PutMapping @PutMapping
public R update(@RequestBody RunnerEntity entity) { public R update(@PathVariable String workspaceId,
@RequestBody RunnerEntity entity) {
T.VerifyUtil.is(entity).notNull() T.VerifyUtil.is(entity).notNull()
.and(entity.getId()).notEmpty(RCode.ID_CANNOT_EMPTY) .and(entity.getId()).notEmpty(RCode.ID_CANNOT_EMPTY)
.and(entity.getWorkspaceId()).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY); .and(workspaceId).notEmpty(RCode.WORKSPACE_ID_CANNOT_EMPTY);
entity.setWorkspaceId(workspaceId);
RunnerEntity runner = runnerService.updateRunner(entity); RunnerEntity runner = runnerService.updateRunner(entity);
return R.ok().putData("record", runner); return R.ok().putData("record", runner);
} }

View File

@@ -10,7 +10,7 @@ import java.util.Map;
public interface IJobService extends IService<JobEntity>{ public interface IJobService extends IService<JobEntity>{
JobEntity queryInfo(String id); JobEntity queryInfo(String id, String workspaceId);
Page queryList(Map<String, Object> params); Page queryList(Map<String, Object> params);

View File

@@ -5,11 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
import net.geedge.asw.module.runner.entity.PcapEntity; import net.geedge.asw.module.runner.entity.PcapEntity;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface IPcapService extends IService<PcapEntity>{ public interface IPcapService extends IService<PcapEntity>{
PcapEntity queryInfo(String id); PcapEntity queryInfo(String id, String workspaceId);
Page queryList(Map<String, Object> params); Page queryList(Map<String, Object> params);

View File

@@ -3,6 +3,7 @@ package net.geedge.asw.module.runner.service.impl;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IORuntimeException;
import cn.hutool.log.Log; import cn.hutool.log.Log;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -67,21 +68,31 @@ public class JobServiceImpl extends ServiceImpl<JobDao, JobEntity> implements IJ
} }
@Override @Override
public JobEntity queryInfo(String id) { public JobEntity queryInfo(String id, String workspaceId) {
JobEntity job = this.getById(id); JobEntity job = this.getOne(new LambdaQueryWrapper<JobEntity>()
.eq(JobEntity::getId, id)
.eq(JobEntity::getWorkspaceId, workspaceId));
T.VerifyUtil.is(job).notNull(RCode.SYS_RECORD_NOT_FOUND); T.VerifyUtil.is(job).notNull(RCode.SYS_RECORD_NOT_FOUND);
RunnerEntity runner = runnerService.getById(job.getRunnerId()); RunnerEntity runner = runnerService.getOne(new LambdaQueryWrapper<RunnerEntity>()
.eq(RunnerEntity::getId, job.getRunnerId())
.eq(RunnerEntity::getWorkspaceId, workspaceId));
job.setRunner(runner); job.setRunner(runner);
PlaybookEntity playbook = playbookService.getById(job.getPlaybookId()); PlaybookEntity playbook = playbookService.getOne(new LambdaQueryWrapper<PlaybookEntity>()
.eq(PlaybookEntity::getId, job.getPlaybookId())
.eq(PlaybookEntity::getWorkspaceId, workspaceId));
job.setPlaybook(playbook); job.setPlaybook(playbook);
PackageEntity pkg = packageService.getById(job.getPackageId()); PackageEntity pkg = packageService.getOne(new LambdaQueryWrapper<PackageEntity>()
.eq(PackageEntity::getId, job.getPackageId())
.eq(PackageEntity::getWorkspaceId, workspaceId));
job.setPkg(pkg); job.setPkg(pkg);
if (T.ObjectUtil.isNotNull(playbook)) { if (T.ObjectUtil.isNotNull(playbook)) {
ApplicationEntity application = applicationService.getById(playbook.getAppId()); ApplicationEntity application = applicationService.getOne(new LambdaQueryWrapper<ApplicationEntity>()
.eq(ApplicationEntity::getId, playbook.getAppId())
.eq(ApplicationEntity::getWorkspaceId, workspaceId));
job.setApplication(application); job.setApplication(application);
} }
return job; return job;
@@ -106,9 +117,10 @@ public class JobServiceImpl extends ServiceImpl<JobDao, JobEntity> implements IJ
// save // save
this.save(entity); this.save(entity);
// workbook resource if (T.StrUtil.isEmpty(entity.getWorkbookId())){
workbookResourceService.saveResource(entity.getWorkbookId(), entity.getId(), WorkbookConstant.ResourceType.JOB.getValue()); // workbook resource
workbookResourceService.saveResource(entity.getWorkbookId(), entity.getId(), WorkbookConstant.ResourceType.JOB.getValue());
}
// trace log file path // trace log file path
File traceLogFile = T.FileUtil.file(this.getJobResultPath(entity.getId()), "trace.log"); File traceLogFile = T.FileUtil.file(this.getJobResultPath(entity.getId()), "trace.log");
this.update(new LambdaUpdateWrapper<JobEntity>() this.update(new LambdaUpdateWrapper<JobEntity>()

View File

@@ -70,8 +70,8 @@ public class PcapServiceImpl extends ServiceImpl<PcapDao, PcapEntity> implements
private IWorkspaceService workspaceService; private IWorkspaceService workspaceService;
@Override @Override
public PcapEntity queryInfo(String id) { public PcapEntity queryInfo(String id, String workspaceId) {
PcapEntity pcap = this.getById(id); PcapEntity pcap = this.getOne(new LambdaQueryWrapper<PcapEntity>().eq(PcapEntity::getId, id).eq(PcapEntity::getWorkspaceId, workspaceId));
T.VerifyUtil.is(pcap).notNull(RCode.SYS_RECORD_NOT_FOUND); T.VerifyUtil.is(pcap).notNull(RCode.SYS_RECORD_NOT_FOUND);
JobEntity job = jobService.getOne(new LambdaQueryWrapper<JobEntity>().eq(JobEntity::getPcapId, pcap.getId())); JobEntity job = jobService.getOne(new LambdaQueryWrapper<JobEntity>().eq(JobEntity::getPcapId, pcap.getId()));