水木接口修改
This commit is contained in:
parent
8965c57f35
commit
5de8382e60
@ -1,13 +1,7 @@
|
||||
package cd.casic.ci.api;
|
||||
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectReportResp;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
|
||||
import cd.casic.ci.process.dto.req.shuimu.*;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.*;
|
||||
import cd.casic.ci.process.process.service.shuimu.ShuiMuService;
|
||||
import cd.casic.framework.commons.pojo.CommonResult;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -74,4 +68,22 @@ public class ShuiMuController {
|
||||
public CommonResult<ShuiMuProjectReportResp> getProjectReport(@RequestParam String projectId){
|
||||
return CommonResult.success(shuiMuService.getProjectReport(projectId));
|
||||
}
|
||||
@PostMapping("/createWebFuzzProject")
|
||||
public CommonResult<ShuiMuWebFuzzProjectCreateResp> createWebFuzzProject(@RequestBody ShuiMuWebFuzzProjectCreateUpdateReq req){
|
||||
return CommonResult.success(shuiMuService.createWebFuzzProject(req));
|
||||
}
|
||||
@GetMapping("/getWebFuzzProjectById")
|
||||
public CommonResult<ShuiMuWebFuzzProjectResp> getWebFuzzProjectById(@RequestParam String id){
|
||||
return CommonResult.success(shuiMuService.getWebFuzzProjectById(id));
|
||||
}
|
||||
@PostMapping("/createWebFuzzTest")
|
||||
public CommonResult<Void> createWebFuzzTest(@RequestParam String projectId){
|
||||
shuiMuService.createWebFuzzTest(projectId);
|
||||
return CommonResult.success();
|
||||
}
|
||||
@PostMapping("/updateWebFuzzProject")
|
||||
public CommonResult<Void> updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req){
|
||||
shuiMuService.updateWebFuzzProject(req);
|
||||
return CommonResult.success();
|
||||
}
|
||||
}
|
||||
|
@ -19,4 +19,9 @@ public class ShuiMuUrlConstant {
|
||||
|
||||
public static final String problemsOfTest = "/api/test/problemsOfTest";
|
||||
public static final String getProjectReport = "/api/project";
|
||||
|
||||
public static final String createWebFuzzProject = "/api/webFuzz/project/create";
|
||||
public static final String updateWebFuzzProject = "/api/webFuzz/project/update";
|
||||
public static final String createWebFuzzTest = "/api/webFuzz/test/create";
|
||||
public static final String getWebFuzzProjectById = "/api/webFuzz/project/getById/";
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package cd.casic.ci.process.dto.req.shuimu;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class ShuiMuWebFuzzProjectCreateUpdateReq {
|
||||
private String id;
|
||||
/**
|
||||
* 项目名
|
||||
* */
|
||||
private String projectName;
|
||||
/**
|
||||
* 项目域名
|
||||
* */
|
||||
private String hostAddress;
|
||||
/**
|
||||
* 项目完整地址
|
||||
* */
|
||||
private String projectAddress;
|
||||
/**
|
||||
* 爬虫域名
|
||||
* */
|
||||
private String crawl;
|
||||
/**
|
||||
* 是否开启爬虫
|
||||
* */
|
||||
private Boolean crawlOpened;
|
||||
/**
|
||||
* 模式名 好像只有 0这个值
|
||||
* */
|
||||
private Integer modeType;
|
||||
/**
|
||||
* 爬虫地址
|
||||
* */
|
||||
private String crawlAddress;
|
||||
private Map<String,Object> config;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package cd.casic.ci.process.dto.resp.shuimu;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ShuiMuWebFuzzProjectCreateResp {
|
||||
private Long id;
|
||||
private String name;
|
||||
private String protocol;
|
||||
private String host;
|
||||
private String pathname;
|
||||
private String projectAddress;
|
||||
private String crawlAddress;
|
||||
private String config;
|
||||
private Integer state;
|
||||
private Long createBy;
|
||||
private Long createAt;
|
||||
private Long updateAt;
|
||||
private Long deleteAt;
|
||||
private String ownerId;
|
||||
private Boolean openCrawling;
|
||||
private Boolean openTimelyScraping;
|
||||
private Integer modeType;
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cd.casic.ci.process.dto.resp.shuimu;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ShuiMuWebFuzzProjectResp {
|
||||
private Long id;
|
||||
private String name;
|
||||
private Long versionId;
|
||||
private String versionCode;
|
||||
private String vcs;
|
||||
private String repo;
|
||||
private String hostAddress;
|
||||
private String config;
|
||||
private String ownerId;
|
||||
private Long createBy;
|
||||
private Integer state;
|
||||
private Long latestTestStartAt;
|
||||
private Integer problemCount;
|
||||
private Integer urlCount;
|
||||
private Integer allUrlCount;
|
||||
private Boolean openCrawling;
|
||||
private Boolean openTimelyScraping;
|
||||
private String protocol;
|
||||
private String host;
|
||||
private String pathname;
|
||||
private String projectAddress;
|
||||
private String crawlAddress;
|
||||
private Long createAt;
|
||||
private Long updateAt;
|
||||
private Long deleteAt;
|
||||
private Integer modeType;
|
||||
}
|
@ -4,16 +4,13 @@ import cd.casic.ci.process.engine.constant.EngineRuntimeConstant;
|
||||
import cd.casic.ci.process.engine.manager.LoggerManager;
|
||||
import cd.casic.ci.process.engine.runContext.TaskRunContext;
|
||||
import cd.casic.ci.process.process.dao.pipeline.PipTaskLogDao;
|
||||
import cd.casic.ci.process.process.dao.pipeline.PipTaskLogLineDao;
|
||||
import cd.casic.ci.process.process.dataObject.log.PipTaskLog;
|
||||
import cd.casic.ci.process.process.dataObject.log.PipTaskLogLine;
|
||||
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
||||
import cd.casic.ci.process.process.service.task.TaskService;
|
||||
import cd.casic.ci.process.process.service.taskLog.PipTaskLogLineService;
|
||||
import cd.casic.ci.process.util.snowflake.SnowflakeIdentifierGenerator;
|
||||
import cd.casic.framework.commons.util.network.IpUtil;
|
||||
import cd.casic.ci.process.util.WebFrameworkUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -12,8 +12,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@WorkAtom(taskType = "DB_FUZZ_TESTING")
|
||||
public class DBFuzzTestingWorker extends BaseWorker {
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(TaskRunContext context) {
|
||||
// PipBaseElement contextDef = context.getContextDef();
|
||||
|
@ -1,12 +1,7 @@
|
||||
package cd.casic.ci.process.process.service.shuimu;
|
||||
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.*;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.*;
|
||||
import cd.casic.framework.commons.pojo.CommonResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -37,5 +32,10 @@ public interface ShuiMuService {
|
||||
List<ShuiMuTestProblemResp> problemsOfTest(ShuiMuTestProblemReq req);
|
||||
|
||||
ShuiMuProjectReportResp getProjectReport(String projectId);
|
||||
ShuiMuWebFuzzProjectCreateResp createWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req);
|
||||
|
||||
ShuiMuWebFuzzProjectResp getWebFuzzProjectById(String id);
|
||||
void createWebFuzzTest(String projectId);
|
||||
void updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req);
|
||||
|
||||
}
|
||||
|
@ -1,11 +1,7 @@
|
||||
package cd.casic.ci.process.process.service.shuimu.impl;
|
||||
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
||||
import cd.casic.ci.process.dto.req.shuimu.*;
|
||||
import cd.casic.ci.process.dto.resp.shuimu.*;
|
||||
import cd.casic.ci.process.engine.manager.RunContextManager;
|
||||
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
||||
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
|
||||
import cd.casic.ci.process.process.service.pipeline.PipelineService;
|
||||
@ -20,6 +16,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.http.*;
|
||||
@ -31,10 +28,7 @@ import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
@ -42,6 +36,7 @@ import java.util.*;
|
||||
import static cd.casic.ci.process.constant.ShuiMuUrlConstant.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShuiMuServiceImpl implements ShuiMuService {
|
||||
@Resource
|
||||
private ShuiMuProperties shuiMuProperties;
|
||||
@ -332,6 +327,72 @@ public class ShuiMuServiceImpl implements ShuiMuService {
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShuiMuWebFuzzProjectCreateResp createWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req) {
|
||||
MultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
|
||||
map.add("projectName",req.getProjectName());
|
||||
map.add("hostAddress",req.getHostAddress());
|
||||
map.add("projectAddress",req.getProjectAddress());
|
||||
map.add("crawl",req.getCrawl());
|
||||
map.add("config",req.getConfig());
|
||||
map.add("crawlOpened",req.getCrawlOpened());
|
||||
map.add("modeType",req.getModeType());
|
||||
map.add("crawlAddress",req.getCrawlAddress());
|
||||
HttpHeaders headers = getHeaders();
|
||||
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
HttpEntity<MultiValueMap<String,Object>> entity = new HttpEntity<>(map, headers);
|
||||
ResponseEntity<ShuiMuWebFuzzProjectCreateResp> exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + createWebFuzzProject, HttpMethod.POST, entity, ShuiMuWebFuzzProjectCreateResp.class, new HashMap<>());
|
||||
return exchange.getBody();
|
||||
}
|
||||
@Override
|
||||
public void updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req) {
|
||||
MultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
|
||||
map.add("projectName",req.getProjectName());
|
||||
map.add("hostAddress",req.getHostAddress());
|
||||
map.add("projectAddress",req.getProjectAddress());
|
||||
map.add("crawl",req.getCrawl());
|
||||
map.add("config",req.getConfig());
|
||||
map.add("crawlOpened",req.getCrawlOpened());
|
||||
map.add("modeType",req.getModeType());
|
||||
map.add("crawlAddress",req.getCrawlAddress());
|
||||
HttpHeaders headers = getHeaders();
|
||||
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
HttpEntity<MultiValueMap<String,Object>> entity = new HttpEntity<>(map, headers);
|
||||
ResponseEntity<String> exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + updateWebFuzzProject, HttpMethod.POST, entity, String.class, new HashMap<>());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createWebFuzzTest(String projectId) {
|
||||
MultiValueMap<String,Object> multiValueMap = new LinkedMultiValueMap<>();
|
||||
ShuiMuWebFuzzProjectResp webFuzzProjectById = getWebFuzzProjectById(projectId);
|
||||
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(webFuzzProjectById));
|
||||
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
|
||||
if (entry.getKey().equals("id")) {
|
||||
multiValueMap.add("projectId",entry.getValue());
|
||||
continue;
|
||||
}
|
||||
multiValueMap.add(entry.getKey(),entry.getValue());
|
||||
}
|
||||
HttpHeaders headers = getHeaders();
|
||||
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
HttpEntity<MultiValueMap<String,Object>> entity = new HttpEntity<>(multiValueMap, headers);
|
||||
ResponseEntity<ShuiMuWebFuzzProjectCreateResp> exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + createWebFuzzTest, HttpMethod.POST, entity, ShuiMuWebFuzzProjectCreateResp.class, new HashMap<>());
|
||||
log.info("请求结果{}",exchange.getBody());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShuiMuWebFuzzProjectResp getWebFuzzProjectById(String id) {
|
||||
HttpEntity<String> entity = new HttpEntity<>(null,getHeaders());
|
||||
String uriString = UriComponentsBuilder.fromUriString(shuiMuProperties.getBaseUrl() + getWebFuzzProjectById + id).toUriString();
|
||||
ResponseEntity<ShuiMuWebFuzzProjectResp> exchange = restTemplate.exchange(uriString, HttpMethod.GET, entity, ShuiMuWebFuzzProjectResp.class, new HashMap<>());
|
||||
return exchange.getBody();
|
||||
}
|
||||
|
||||
public void updateWebFuzzProject(){
|
||||
|
||||
}
|
||||
|
||||
private HttpHeaders getHeaders(){
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
@ -13,6 +13,7 @@ import cd.casic.ci.process.process.dataObject.template.TemplateManager;
|
||||
import cd.casic.ci.process.process.dataObject.template.TemplateStage;
|
||||
import cd.casic.ci.process.process.dataObject.template.TemplateTask;
|
||||
import cd.casic.ci.process.process.service.template.TemplateManagerService;
|
||||
import cd.casic.ci.process.util.snowflake.SnowflakeIdentifierGenerator;
|
||||
import cd.casic.framework.commons.exception.ServiceException;
|
||||
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
|
||||
import cd.casic.framework.commons.pojo.PageResult;
|
||||
@ -59,11 +60,36 @@ public class TemplateManagerServiceImpl extends ServiceImpl<TemplateManagerDao,
|
||||
private AdminUserServiceImpl adminUserService;
|
||||
@Resource
|
||||
private TemplateConverter templateConverter;
|
||||
@Resource
|
||||
private SnowflakeIdentifierGenerator idWork;
|
||||
|
||||
public String createTemplateManager(TemplateCreateReq req){
|
||||
TemplateManager templateManager = templateConverter.managerCreateReqToManager(req);
|
||||
save(templateManager);
|
||||
return templateManager.getId();
|
||||
String templateManagerId = templateManager.getId();
|
||||
// 创建模板节点
|
||||
TemplateStage firstStage = new TemplateStage();
|
||||
firstStage.setTemplateId(templateManagerId);
|
||||
firstStage.setStageName("源码阶段");
|
||||
firstStage.setParentId("-1");
|
||||
String firstStageId = idWork.nextUUID(null);
|
||||
firstStage.setId(firstStageId);
|
||||
TemplateStage secondStage = new TemplateStage();
|
||||
secondStage.setTemplateId(templateManagerId);
|
||||
secondStage.setStageName("源码阶段");
|
||||
secondStage.setParentId(firstStageId);
|
||||
String secondStageId = idWork.nextUUID(null);
|
||||
secondStage.setId(secondStageId);
|
||||
TemplateTask task = new TemplateTask();
|
||||
task.setTemplateId(templateManagerId);
|
||||
task.setStageId(secondStageId);
|
||||
task.setTaskSort(1);
|
||||
task.setTaskName("初始节点");
|
||||
task.setTemplateId(templateManagerId);
|
||||
templateStageDao.insert(firstStage);
|
||||
templateStageDao.insert(secondStage);
|
||||
templateTaskDao.insert(task);
|
||||
return templateManagerId;
|
||||
}
|
||||
@Override
|
||||
public PageResult<TemplateFindResp> findTemplatePage(TemplateQueryReq query) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user