diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java index adc9893f..a97518b1 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/ShuiMuController.java @@ -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 getProjectReport(@RequestParam String projectId){ return CommonResult.success(shuiMuService.getProjectReport(projectId)); } + @PostMapping("/createWebFuzzProject") + public CommonResult createWebFuzzProject(@RequestBody ShuiMuWebFuzzProjectCreateUpdateReq req){ + return CommonResult.success(shuiMuService.createWebFuzzProject(req)); + } + @GetMapping("/getWebFuzzProjectById") + public CommonResult getWebFuzzProjectById(@RequestParam String id){ + return CommonResult.success(shuiMuService.getWebFuzzProjectById(id)); + } + @PostMapping("/createWebFuzzTest") + public CommonResult createWebFuzzTest(@RequestParam String projectId){ + shuiMuService.createWebFuzzTest(projectId); + return CommonResult.success(); + } + @PostMapping("/updateWebFuzzProject") + public CommonResult updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req){ + shuiMuService.updateWebFuzzProject(req); + return CommonResult.success(); + } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java index 793dfbeb..7d13981f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/constant/ShuiMuUrlConstant.java @@ -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/"; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuWebFuzzProjectCreateUpdateReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuWebFuzzProjectCreateUpdateReq.java new file mode 100644 index 00000000..5098fcf4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/shuimu/ShuiMuWebFuzzProjectCreateUpdateReq.java @@ -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 config; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectCreateResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectCreateResp.java new file mode 100644 index 00000000..2eb19105 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectCreateResp.java @@ -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; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectResp.java new file mode 100644 index 00000000..e00afed2 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/shuimu/ShuiMuWebFuzzProjectResp.java @@ -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; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java index 7b3bf4b7..9e74550f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java @@ -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; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/DBFuzzTestingWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/DBFuzzTestingWorker.java index 4abf432f..5c7ac124 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/DBFuzzTestingWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/DBFuzzTestingWorker.java @@ -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(); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java index 469ce6fc..641681ae 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/ShuiMuService.java @@ -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 problemsOfTest(ShuiMuTestProblemReq req); ShuiMuProjectReportResp getProjectReport(String projectId); + ShuiMuWebFuzzProjectCreateResp createWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req); + + ShuiMuWebFuzzProjectResp getWebFuzzProjectById(String id); + void createWebFuzzTest(String projectId); + void updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java index e1645417..f9ca6d5f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/shuimu/impl/ShuiMuServiceImpl.java @@ -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 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> entity = new HttpEntity<>(map, headers); + ResponseEntity exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + createWebFuzzProject, HttpMethod.POST, entity, ShuiMuWebFuzzProjectCreateResp.class, new HashMap<>()); + return exchange.getBody(); + } + @Override + public void updateWebFuzzProject(ShuiMuWebFuzzProjectCreateUpdateReq req) { + MultiValueMap 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> entity = new HttpEntity<>(map, headers); + ResponseEntity exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + updateWebFuzzProject, HttpMethod.POST, entity, String.class, new HashMap<>()); + + } + + @Override + public void createWebFuzzTest(String projectId) { + MultiValueMap multiValueMap = new LinkedMultiValueMap<>(); + ShuiMuWebFuzzProjectResp webFuzzProjectById = getWebFuzzProjectById(projectId); + JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(webFuzzProjectById)); + for (Map.Entry 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> entity = new HttpEntity<>(multiValueMap, headers); + ResponseEntity exchange = restTemplate.exchange(shuiMuProperties.getBaseUrl() + createWebFuzzTest, HttpMethod.POST, entity, ShuiMuWebFuzzProjectCreateResp.class, new HashMap<>()); + log.info("请求结果{}",exchange.getBody()); + } + + @Override + public ShuiMuWebFuzzProjectResp getWebFuzzProjectById(String id) { + HttpEntity entity = new HttpEntity<>(null,getHeaders()); + String uriString = UriComponentsBuilder.fromUriString(shuiMuProperties.getBaseUrl() + getWebFuzzProjectById + id).toUriString(); + ResponseEntity 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); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/template/impl/TemplateManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/template/impl/TemplateManagerServiceImpl.java index c2601de8..9ae476b2 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/template/impl/TemplateManagerServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/template/impl/TemplateManagerServiceImpl.java @@ -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 findTemplatePage(TemplateQueryReq query) {