水木接口修改、afl字段添加

This commit is contained in:
even 2025-07-07 15:23:52 +08:00
parent 92fa95b91f
commit 1ebc5f6c95
8 changed files with 74 additions and 5 deletions

View File

@ -2,9 +2,11 @@ package cd.casic.ci.api;
import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq; 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.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.ShuiMuUpdateWFuzzJsonReq;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
import cd.casic.ci.process.process.service.shuimu.ShuiMuService; import cd.casic.ci.process.process.service.shuimu.ShuiMuService;
import cd.casic.framework.commons.pojo.CommonResult; import cd.casic.framework.commons.pojo.CommonResult;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -63,4 +65,8 @@ public class ShuiMuController {
shuiMuService.uploadWfuzzJson(req); shuiMuService.uploadWfuzzJson(req);
return CommonResult.success(); return CommonResult.success();
} }
@PostMapping("/problemsOfTest")
public CommonResult<ShuiMuTestProblemResp> problemsOfTest(@RequestBody ShuiMuTestProblemReq req){
return null;
}
} }

View File

@ -16,4 +16,6 @@ public class ShuiMuUrlConstant {
public static final String getProjectResource = "/api/project/getProjectResource"; public static final String getProjectResource = "/api/project/getProjectResource";
public static final String uploadWfuzzJson = "/api/project/code/uploadWfuzzJson"; public static final String uploadWfuzzJson = "/api/project/code/uploadWfuzzJson";
public static final String executeAllEntrypointsTest ="/api/driverGeneration/executeAllEntrypointsTest"; public static final String executeAllEntrypointsTest ="/api/driverGeneration/executeAllEntrypointsTest";
public static final String problemsOfTest = "/api/test/problemsOfTest";
} }

View File

@ -0,0 +1,11 @@
package cd.casic.ci.process.dto.req.shuimu;
import cd.casic.framework.commons.pojo.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class ShuiMuTestProblemReq extends PageParam {
private String projectId;
}

View File

@ -0,0 +1,23 @@
package cd.casic.ci.process.dto.resp.shuimu;
import lombok.Data;
@Data
public class ShuiMuTestProblemResp {
private String id;
private String name;
private String type;
private String state;
private String tag;
private String count;
private String passCount;
private String testid;
private String testGroupId;
private String createAt;
private String description;
private String cwe;
private String testGroupIdAndproblemId;
private String product;
private String projectName;
private String moduleName;
}

View File

@ -27,4 +27,5 @@ public class PipelineVariableConstant {
public static final String COMPILE_RESULT_KEY ="compileResult"; public static final String COMPILE_RESULT_KEY ="compileResult";
public static final String AFL_RESOURCE_MANAGER_ID_KEY = "managerId"; public static final String AFL_RESOURCE_MANAGER_ID_KEY = "managerId";
public static final String IMAGE_NAME = "IMAGE_NAME"; public static final String IMAGE_NAME = "IMAGE_NAME";
public static final String EXECUTABLE_NAME_KEY = "executableName";
} }

View File

@ -102,6 +102,7 @@ public class AFLWorker extends DockerWorker {
toBadEnding(); toBadEnding();
} }
localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode); localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode);
putGlobalVariable(context, EXECUTABLE_NAME_KEY,imageName);
} }
} }
public String cdSourceName(String fileName){ public String cdSourceName(String fileName){

View File

@ -2,10 +2,14 @@ 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.ShuiMuBuildAndSaveReq;
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq; 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.ShuiMuUpdateWFuzzJsonReq;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp; import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
import cd.casic.framework.commons.pojo.CommonResult;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@ -31,5 +35,7 @@ public interface ShuiMuService {
void buildAndSaveConfig(ShuiMuBuildAndSaveReq req); void buildAndSaveConfig(ShuiMuBuildAndSaveReq req);
void uploadWfuzzJson(ShuiMuUpdateWFuzzJsonReq req); void uploadWfuzzJson(ShuiMuUpdateWFuzzJsonReq req);
void executeAllEntrypointsTest(String projectId,Integer fuzzMinutes); void executeAllEntrypointsTest(String projectId,Integer fuzzMinutes);
ShuiMuProjectResourceResp getProjectResource (String projectId); ShuiMuProjectResourceResp getProjectResource(String projectId);
List<ShuiMuTestProblemResp> problemsOfTest(ShuiMuTestProblemReq req);
} }

View File

@ -2,11 +2,9 @@ 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.ShuiMuBuildAndSaveReq;
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq; 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.ShuiMuUpdateWFuzzJsonReq;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp; import cd.casic.ci.process.dto.resp.shuimu.*;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTokenResp;
import cd.casic.ci.process.engine.manager.RunContextManager; import cd.casic.ci.process.engine.manager.RunContextManager;
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
import cd.casic.ci.process.process.dataObject.target.TargetVersion; import cd.casic.ci.process.process.dataObject.target.TargetVersion;
@ -279,6 +277,27 @@ public class ShuiMuServiceImpl implements ShuiMuService {
return null; return null;
} }
} }
@Override
public List<ShuiMuTestProblemResp> problemsOfTest(ShuiMuTestProblemReq req) {
HttpHeaders headers = getHeaders();
HttpEntity<String> entity = new HttpEntity<>(null,headers);
String skip = String.valueOf((req.getPageNo()-1)*req.getPageSize());
String limit = String.valueOf(req.getPageSize());
String product = "code";
String projectId = req.getProjectId();
String uriString = UriComponentsBuilder.fromUriString(shuiMuProperties.getBaseUrl() + problemsOfTest)
.queryParam("skip", skip)
.queryParam("limit", limit)
.queryParam("product", product)
.queryParam("projectId", projectId).toUriString();
ResponseEntity<String> exchange = restTemplate.exchange(uriString, HttpMethod.GET, entity, String.class, new HashMap<>());
JSONObject jsonObject = JSON.parseObject(exchange.getBody());
JSONArray data = jsonObject.getJSONArray("data");
return null;
}
private HttpHeaders getHeaders(){ private HttpHeaders getHeaders(){
HttpHeaders httpHeaders = new HttpHeaders(); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON); httpHeaders.setContentType(MediaType.APPLICATION_JSON);