Compare commits

..

No commits in common. "9cc1dcbefea382dcac0178c87595b4aa3b31a263" and "103fcf9930ebfd677fbdbbf2341d3bd9048cc71b" have entirely different histories.

9 changed files with 4 additions and 181 deletions

View File

@ -8,10 +8,6 @@ import cd.casic.ci.process.dto.resp.sast.*;
import cd.casic.ci.process.process.service.sast.SastService;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cd.casic.framework.commons.pojo.CommonResult;
import cd.casic.framework.commons.pojo.PageParam;
import cd.casic.framework.commons.pojo.PageResult;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.Negative;
@ -28,17 +24,11 @@ import java.util.List;
public class SastController {
@Resource
private SastService sastService;
/**
* sast判断应用名称是否存在
* */
@GetMapping("/applicationExist")
public CommonResult<Boolean> applicationExist(@RequestParam String applicationName){
Boolean b = sastService.applicationExist(applicationName);
return CommonResult.success(b);
}
/**
* sast上传检测文件
* */
@PostMapping("/uploadFile")
public CommonResult<SastFileUploadResp> uploadFile(MultipartFile multipartFile){
File tempFile = null;
@ -57,85 +47,42 @@ public class SastController {
}
}
}
/**
* sast创建语言检测任务
* */
@PostMapping("/createIdentifiedLanguageTask")
public CommonResult<SastIdentifiedLanguageTaskResp> createIdentifiedLanguageTask(@RequestBody SastIdentifiedLanguageTaskReq req){
SastIdentifiedLanguageTaskResp identifiedLanguageTask = sastService.createIdentifiedLanguageTask(req);
return CommonResult.success(identifiedLanguageTask);
}
/**
* sast 获取检测任务状态
* */
@GetMapping("/getIdentifiedLanguageTaskStatus/{taskId}")
public CommonResult<SastIdentifiedLanguageTaskResp> getIdentifiedLanguageTaskStatus(@PathVariable String taskId){
SastIdentifiedLanguageTaskResp identifiedLanguageTaskStatus = sastService.getIdentifiedLanguageTaskStatus(taskId);
return CommonResult.success(identifiedLanguageTaskStatus);
}
/**
* sast 获取引擎配置
* */
@PostMapping("/engineConfig")
public CommonResult<List<SastEngineConfigResp>> engineConfig(@RequestBody SastEngineConfigReq req){
return CommonResult.success(sastService.engineConfig(req.getLanguageIdList()));
}
/**
* sast 获取语言模板等信息
* */
@GetMapping("/detectionConfig/{languageId}")
public CommonResult<SastDetectionConfigResp> detectionConfig(@PathVariable String languageId){
SastDetectionConfigResp sastDetectionConfigResp = sastService.detectionConfig(languageId);
return CommonResult.success(sastDetectionConfigResp);
}
/**
* sast上传 应用创建或者更新
* */
@PostMapping("/applicationCreateOrUpdate")
public CommonResult<SastApplicationCreateResp> applicationCreateOrUpdate(@RequestBody SastApplicationCreateReq req){
SastApplicationCreateResp sastApplicationCreateResp = sastService.applicationCreate(req);
return CommonResult.success(sastApplicationCreateResp);
}
/**
* sast 应用信息回显
* */
@GetMapping("/getApplicationEcho/{applicationId}")
public CommonResult<SastApplicationEchoResp> getApplicationEcho(@PathVariable String applicationId){
SastApplicationEchoResp applicationEcho = sastService.getApplicationEcho(applicationId);
return CommonResult.success(applicationEcho);
}
/**
* sast 导出报告
* */
@PostMapping("/reportIndex")
public CommonResult<String> reportIndex(@RequestBody SastReportCreateReq req){
String reportId = sastService.reportIndex(req);
return CommonResult.success(reportId);
}
/**
* sast 下载报告
* */
@GetMapping("/reportDownload")
public CommonResult<String> reportDownLoad(@RequestParam String reportId){
public CommonResult<String> reportDownLoad(String reportId){
return CommonResult.success(sastService.reportDownload(reportId));
}
/**
* sast 获取全部语言信息
* */
@GetMapping("/language")
public CommonResult<List<SastLanguageResp>> language(){
return CommonResult.success(sastService.language());
}
/**
* sast报告列表
* */
@PostMapping("/reportList")
public CommonResult<PageResult<SastReportResp>> reportList(@RequestBody PageParam pageParam){
return CommonResult.success(sastService.reportList(pageParam));
}
@DeleteMapping("/reportDelete")
public CommonResult<Void> reportDelete(@RequestParam String reportId){
sastService.reportDelete(reportId);
return CommonResult.success();
}
}

View File

@ -13,7 +13,4 @@ public class SastUrlConstant {
public static final String getApplicationEcho = "/invoke/application/getApplicationEcho";
public static final String reportIndex = "/api/report/index";
public static final String reportDownload = "/api/report/index/download";
public static final String language = "/invoke/language";
public static final String reportList = "/api/report/index/pageList";
public static final String reportDelete = "/api/report/index";
}

View File

@ -1,16 +0,0 @@
package cd.casic.ci.process.dto.resp.sast;
import lombok.Data;
import java.util.List;
@Data
public class SastLanguageResp {
private String type;
private List<SastLanguageResp> languageInfos;
@Data
public static class SastLanguageInfoResp{
private String id;
private String language;
private Boolean compileFlag;
}
}

View File

@ -1,19 +0,0 @@
package cd.casic.ci.process.dto.resp.sast;
import lombok.Data;
@Data
public class SastReportResp {
private String id;
private String createdTime;
private String createdBy;
private String updatedTime;
private String updatedBy;
private String name;
private String projectId;
private String type;
private String applicationScope;
private String mode;
private String status;
private String format;
}

View File

@ -8,18 +8,11 @@ import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.SshWorker;
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine;
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.target.TargetVersionService;
import cd.casic.ci.process.util.CryptogramUtil;
import cd.casic.ci.process.util.SftpUploadUtil;
import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.Map;
/**
@ -28,8 +21,7 @@ import java.util.Map;
@Slf4j
@WorkAtom(taskType = "CUSTOM_COMPILE")
public class CustomCompilerWorker extends SshWorker {
@Resource
private TargetVersionService targetVersionService;
@Override
public void execute(TaskRunContext context) {
@ -64,29 +56,9 @@ public class CustomCompilerWorker extends SshWorker {
String resourceId = pipeline.getResourceId();
ResourceFindResp resourceById = getResourceManagerService().findResourceById(resourceId);
PipResourceMachine resourceMachine = resourceById.getResourceMachine();
//根据目标id查询目标信息
if (StringUtils.isEmpty(pipeline.getTargetVersionId())){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"目标文件不存在");
}
TargetVersion targetVersion = targetVersionService.getById(pipeline.getTargetVersionId());
String filePath = targetVersion.getFilePath();
File file = new File(filePath);
if (!file.exists() || !file.canRead()) {
log.error("目标文件不存在或不可读");
localVariables.put("statusCode", "-1");
append(context,"目标文件不存在或不可读");
toBadEnding();
}
append(context,"上传文件"+targetVersion.getFileName()+"到目标服务器IP:"+resourceMachine.getMachineHost());
append(context,"上传路径:"+"/home/casic/706/ai_test_527");
// 上传目标 到目标服务器
SftpUploadUtil.uploadFileViaSftp(resourceMachine.getMachineHost(),Integer.valueOf(resourceMachine.getSshPort()),resourceMachine.getUsername(), CryptogramUtil.doDecrypt(resourceMachine.getPassword()),null,file.getAbsolutePath(),"/home/casic/706/ai_test_527",file.getName());
//TODO 得改一下
statusCode = shell(resourceMachine, null,context,
statusCode = shell(resourceMachine, CryptogramUtil.doDecrypt(resourceMachine.getPassword()),context,
"echo \"编译命令执行\"",
"cd /home/casic/706/ai_test_527",
commandScript
);
} catch (Exception e) {

View File

@ -11,7 +11,6 @@ import cd.casic.ci.process.process.converter.SastConverter;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.sast.SastService;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@ -36,10 +35,6 @@ public class SastWorker extends BaseWorker {
log.info("==========运行context{}===========", JSON.toJSONString(context));
if (contextDef instanceof PipTask task) {
String applicationId = (String)task.getTaskProperties().get("applicationId");
if (StringUtils.isEmpty(applicationId)) {
append(context,"未获取到sast信息");
toBadEnding();
}
SastApplicationEchoResp applicationEcho = sastService.getApplicationEcho(applicationId);
append(context,"获取到sast任务配置"+JSON.toJSONString(applicationEcho));
SastApplicationCreateReq sastApplicationCreateReq = converter.converter(applicationEcho);

View File

@ -4,10 +4,6 @@ import cd.casic.ci.process.dto.req.sast.SastApplicationCreateReq;
import cd.casic.ci.process.dto.req.sast.SastIdentifiedLanguageTaskReq;
import cd.casic.ci.process.dto.req.sast.SastReportCreateReq;
import cd.casic.ci.process.dto.resp.sast.*;
import cd.casic.framework.commons.pojo.PageParam;
import cd.casic.framework.commons.pojo.PageResult;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
@ -25,8 +21,4 @@ public interface SastService {
SastApplicationEchoResp getApplicationEcho(String applicationId);
String reportIndex(SastReportCreateReq req);
public String reportDownload(String reportId);
public List<SastLanguageResp> language();
public PageResult<SastReportResp> reportList(PageParam pageParam);
public void reportDelete(String reportId);
}

View File

@ -3,12 +3,9 @@ package cd.casic.ci.process.process.service.sast.impl;
import cd.casic.ci.process.dto.req.sast.SastApplicationCreateReq;
import cd.casic.ci.process.dto.req.sast.SastIdentifiedLanguageTaskReq;
import cd.casic.ci.process.dto.req.sast.SastReportCreateReq;
import cd.casic.ci.process.dto.resp.report.ReportResp;
import cd.casic.ci.process.dto.resp.sast.*;
import cd.casic.ci.process.process.service.sast.SastService;
import cd.casic.ci.process.properties.SastProperties;
import cd.casic.framework.commons.pojo.PageParam;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.redis.core.RedisTemplateUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@ -76,7 +73,7 @@ public class SastServiceImpl implements SastService {
if (StringUtils.isEmpty(token)) {
SastTokenResp tokenRemote = getTokenRemote();
String accessToken = tokenRemote.getAccessToken();
redisTemplateUtils.set(REDIS_SAST_TOKEN_KEY,accessToken,tokenRemote.getExpiresIn());
redisTemplateUtils.set(REDIS_SAST_TOKEN_KEY,accessToken,tokenRemote.getExpiresIn()*10);
token = accessToken;
}
}
@ -194,44 +191,6 @@ public class SastServiceImpl implements SastService {
ResponseEntity<String> exchange = restTemplate.exchange(uriString, HttpMethod.GET,entity, String.class,new HashMap<>());
return exchange.getBody().replaceAll("\"","");
}
@Override
public List<SastLanguageResp> language(){
HttpHeaders httpHeaders = getHeaders();
Map<String, String> entityMap = new HashMap<>();
HttpEntity<Map<String, String>> entity = new HttpEntity<>(entityMap,httpHeaders);
String uriString = UriComponentsBuilder.fromHttpUrl(sastProperties.getBaseUrl() + language).queryParam("codeSourceFrom", "CODE").toUriString();
System.out.println(uriString);
ResponseEntity<String> exchange = restTemplate.exchange(uriString, HttpMethod.GET,entity, String.class,new HashMap<>());
return JSON.parseArray(exchange.getBody(),SastLanguageResp.class);
}
@Override
public PageResult<SastReportResp> reportList(PageParam pageParam) {
HttpHeaders httpHeaders = getHeaders();
Map<String, String> entityMap = new HashMap<>();
HttpEntity<Map<String, String>> entity = new HttpEntity<>(entityMap,httpHeaders);
String uriString = UriComponentsBuilder.fromHttpUrl(sastProperties.getBaseUrl() + reportList)
.queryParam("page", pageParam.getPageNo())
.queryParam("size", pageParam.getPageSize())
.toUriString();
System.out.println(uriString);
ResponseEntity<String> exchange = restTemplate.exchange(uriString, HttpMethod.GET,entity, String.class,new HashMap<>());
JSONObject jsonObject = JSON.parseObject(exchange.getBody());
List<SastReportResp> respList = JSONArray.parseArray(jsonObject.getString("content"), SastReportResp.class);
PageResult<SastReportResp> pageResult = new PageResult<SastReportResp>(respList,jsonObject.getLong("totalElements"),Long.valueOf(String.valueOf(pageParam.getPageNo())),Long.valueOf(String.valueOf(pageParam.getPageSize())));
return pageResult;
}
@Override
public void reportDelete(String reportId){
HttpHeaders httpHeaders = getHeaders();
Map<String, String> entityMap = new HashMap<>();
HttpEntity<Map<String, String>> entity = new HttpEntity<>(entityMap,httpHeaders);
String uriString = UriComponentsBuilder.fromHttpUrl(sastProperties.getBaseUrl() + reportDelete).queryParam("id", reportId).toUriString();
System.out.println(uriString);
ResponseEntity<Void> exchange = restTemplate.exchange(uriString, HttpMethod.DELETE,entity, Void.class,new HashMap<>());
}
private HttpHeaders getHeaders(){
HttpHeaders httpHeaders = new HttpHeaders();

View File

@ -133,8 +133,4 @@ public class SastTest {
SastApplicationCreateResp sastApplicationCreateResp = sastService.applicationCreate(sastApplicationCreateReq);
System.out.println(JSON.toJSONString(sastApplicationCreateResp));
}
@Test
public void reportDelete(){
sastService.reportDelete("4af3380a-de08-476b-b1bc-b86f8d2e1339");
}
}