0607 ljc sca模块修改

This commit is contained in:
HopeLi 2025-06-07 16:38:17 +08:00
parent 8664b4f25e
commit aea93de839
5 changed files with 57 additions and 14 deletions

View File

@ -6,6 +6,7 @@ import cd.casic.ci.process.engine.context.ConstantContextHolder;
import cd.casic.ci.process.engine.runContext.BaseRunContext; import cd.casic.ci.process.engine.runContext.BaseRunContext;
import cd.casic.ci.process.engine.runContext.TaskRunContext; import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.HttpWorker; import cd.casic.ci.process.engine.worker.base.HttpWorker;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
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;
@ -51,6 +52,9 @@ public class ApplicationWorker extends HttpWorker {
@Resource @Resource
private TargetVersionServiceImpl targetVersionService; private TargetVersionServiceImpl targetVersionService;
@Resource
private PipTaskDao pipTaskDao;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
@ -92,7 +96,7 @@ public class ApplicationWorker extends HttpWorker {
append(context,"目标文件不存在或不可读"); append(context,"目标文件不存在或不可读");
} }
handleUpload(pipTask.getTaskProperties(), file,context); handleUpload(pipTask, file,context);
}catch (Exception e){ }catch (Exception e){
append(context,"==================SCA-应用包审查分析节点执行失败================="); append(context,"==================SCA-应用包审查分析节点执行失败=================");
append(context,"SCA-应用包审查分析节点执行失败失败,请检查当前节点配置!"); append(context,"SCA-应用包审查分析节点执行失败失败,请检查当前节点配置!");
@ -104,7 +108,8 @@ public class ApplicationWorker extends HttpWorker {
localVariables.put("statusCode", statusCode + ""); localVariables.put("statusCode", statusCode + "");
} }
private void handleUpload(Map<String,Object> applicationConfigInfo, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { private void handleUpload(PipTask pipTask, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
Map<String, Object> applicationConfigInfo = pipTask.getTaskProperties();
RestTemplate restTemplate = getRestTemplateWithoutSANCheck(); RestTemplate restTemplate = getRestTemplateWithoutSANCheck();
String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/app-package/detect-file"; String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/app-package/detect-file";
MultiValueMap<String, Object> body = buildRequestBody(applicationConfigInfo, file); MultiValueMap<String, Object> body = buildRequestBody(applicationConfigInfo, file);
@ -122,6 +127,11 @@ public class ApplicationWorker extends HttpWorker {
JSONObject data = response.getJSONObject("data"); JSONObject data = response.getJSONObject("data");
Integer scaTaskId = data.getInteger("scaTaskId"); Integer scaTaskId = data.getInteger("scaTaskId");
//更新xmTraceId数据到task表
applicationConfigInfo.put("xmTraceId",response.getJSONObject("xmTraceId").toString());
pipTask.setTaskProperties(applicationConfigInfo);
pipTaskDao.updateById(pipTask);
pollTaskStatus(restTemplate, scaTaskId); pollTaskStatus(restTemplate, scaTaskId);
} else if (message.equals("应用已经存在")) { } else if (message.equals("应用已经存在")) {
append(context,message); append(context,message);

View File

@ -5,10 +5,9 @@ import cd.casic.ci.process.common.WorkAtom;
import cd.casic.ci.process.engine.context.ConstantContextHolder; import cd.casic.ci.process.engine.context.ConstantContextHolder;
import cd.casic.ci.process.engine.runContext.TaskRunContext; import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.HttpWorker; import cd.casic.ci.process.engine.worker.base.HttpWorker;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.dataObject.task.PipTask;
import cd.casic.ci.process.process.service.pipeline.PipelineService;
import cd.casic.ci.process.process.service.target.impl.TargetVersionServiceImpl;
import cd.casic.framework.commons.exception.ServiceException; import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -38,10 +37,7 @@ public class CodingWorker extends HttpWorker {
public static final Integer REPO_TYPE_GIT=8; public static final Integer REPO_TYPE_GIT=8;
@Resource @Resource
private PipelineService pipelineService; private PipTaskDao pipTaskDao;
@Resource
private TargetVersionServiceImpl targetVersionService;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
@ -102,6 +98,12 @@ public class CodingWorker extends HttpWorker {
append(context,"===============SCA上传成功================="); append(context,"===============SCA上传成功=================");
JSONObject data = response.getJSONObject("data"); JSONObject data = response.getJSONObject("data");
Integer scaTaskId = data.getInteger("scaTaskId"); Integer scaTaskId = data.getInteger("scaTaskId");
//更新xmTraceId数据到task表
codingConfigInfo.put("xmTraceId",response.getJSONObject("xmTraceId").toString());
pipTask.setTaskProperties(codingConfigInfo);
pipTaskDao.updateById(pipTask);
//轮询请求状态 //轮询请求状态
pollTaskStatus(restTemplate, scaTaskId); pollTaskStatus(restTemplate, scaTaskId);
} else if (response.getString("message").equals("应用已经存在")){ } else if (response.getString("message").equals("应用已经存在")){

View File

@ -6,6 +6,7 @@ import cd.casic.ci.process.engine.context.ConstantContextHolder;
import cd.casic.ci.process.engine.runContext.BaseRunContext; import cd.casic.ci.process.engine.runContext.BaseRunContext;
import cd.casic.ci.process.engine.runContext.TaskRunContext; import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.HttpWorker; import cd.casic.ci.process.engine.worker.base.HttpWorker;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
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;
@ -52,6 +53,9 @@ public class ScaBinaryWorker extends HttpWorker {
@Resource @Resource
private TargetVersionServiceImpl targetVersionService; private TargetVersionServiceImpl targetVersionService;
@Resource
private PipTaskDao pipTaskDao;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
int statusCode = 0; int statusCode = 0;
@ -96,7 +100,7 @@ public class ScaBinaryWorker extends HttpWorker {
append(context, "文件存在但不可读: " + file.getAbsolutePath()); append(context, "文件存在但不可读: " + file.getAbsolutePath());
} else { } else {
// 正常处理文件上传 // 正常处理文件上传
handleUpload(pipTask.getTaskProperties(), file, context); handleUpload(pipTask, file, context);
} }
}catch (Exception e){ }catch (Exception e){
append(context,"==================SCA-BINARY节点执行失败================="); append(context,"==================SCA-BINARY节点执行失败=================");
@ -111,7 +115,9 @@ public class ScaBinaryWorker extends HttpWorker {
// localVariables.put(EngineRuntimeConstant.LOG_KEY, pipTaskLog); // localVariables.put(EngineRuntimeConstant.LOG_KEY, pipTaskLog);
} }
private void handleUpload(Map<String,Object> scaBinaryConfigInfo, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { private void handleUpload(PipTask pipTask, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
Map<String, Object> scaBinaryConfigInfo = pipTask.getTaskProperties();
RestTemplate restTemplate = getRestTemplateWithoutSANCheck(); RestTemplate restTemplate = getRestTemplateWithoutSANCheck();
String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/binary/detect-file"; String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/binary/detect-file";
MultiValueMap<String, Object> body = buildRequestBody(scaBinaryConfigInfo, file); MultiValueMap<String, Object> body = buildRequestBody(scaBinaryConfigInfo, file);
@ -129,6 +135,11 @@ public class ScaBinaryWorker extends HttpWorker {
JSONObject data = response.getJSONObject("data"); JSONObject data = response.getJSONObject("data");
Integer scaTaskId = data.getInteger("scaTaskId"); Integer scaTaskId = data.getInteger("scaTaskId");
//更新xmTraceId数据到task表
scaBinaryConfigInfo.put("xmTraceId",response.getJSONObject("xmTraceId").toString());
pipTask.setTaskProperties(scaBinaryConfigInfo);
pipTaskDao.updateById(pipTask);
pollTaskStatus(restTemplate, scaTaskId); pollTaskStatus(restTemplate, scaTaskId);
} else if (message.equals("应用已经存在")) { } else if (message.equals("应用已经存在")) {
append(context,message); append(context,message);

View File

@ -6,6 +6,7 @@ import cd.casic.ci.process.engine.context.ConstantContextHolder;
import cd.casic.ci.process.engine.runContext.BaseRunContext; import cd.casic.ci.process.engine.runContext.BaseRunContext;
import cd.casic.ci.process.engine.runContext.TaskRunContext; import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.HttpWorker; import cd.casic.ci.process.engine.worker.base.HttpWorker;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
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;
@ -53,6 +54,9 @@ public class ScaMirrorWorker extends HttpWorker {
@Resource @Resource
private TargetVersionServiceImpl targetVersionService; private TargetVersionServiceImpl targetVersionService;
@Resource
private PipTaskDao pipTaskDao;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
int statusCode = 0; int statusCode = 0;
@ -95,7 +99,7 @@ public class ScaMirrorWorker extends HttpWorker {
append(context,"目标文件不存在或不可读"); append(context,"目标文件不存在或不可读");
} }
handleUpload(pipTask.getTaskProperties(), file,context); handleUpload(pipTask, file,context);
}catch (Exception e){ }catch (Exception e){
append(context,"==================SCA-MIRROR节点执行失败================="); append(context,"==================SCA-MIRROR节点执行失败=================");
append(context,"SCA-MIRROR节点执行失败失败请检查当前节点配置!"); append(context,"SCA-MIRROR节点执行失败失败请检查当前节点配置!");
@ -109,7 +113,8 @@ public class ScaMirrorWorker extends HttpWorker {
// localVariables.put(EngineRuntimeConstant.LOG_KEY, pipTaskLog); // localVariables.put(EngineRuntimeConstant.LOG_KEY, pipTaskLog);
} }
private void handleUpload(Map<String,Object> scaMirrorConfigInfo, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { private void handleUpload(PipTask pipTask, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
Map<String, Object> scaMirrorConfigInfo = pipTask.getTaskProperties();
RestTemplate restTemplate = getRestTemplateWithoutSANCheck(); RestTemplate restTemplate = getRestTemplateWithoutSANCheck();
String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/image/detect-file"; String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/image/detect-file";
MultiValueMap<String, Object> body = buildRequestBody(scaMirrorConfigInfo, file); MultiValueMap<String, Object> body = buildRequestBody(scaMirrorConfigInfo, file);
@ -127,6 +132,11 @@ public class ScaMirrorWorker extends HttpWorker {
JSONObject data = response.getJSONObject("data"); JSONObject data = response.getJSONObject("data");
Integer scaTaskId = data.getInteger("scaTaskId"); Integer scaTaskId = data.getInteger("scaTaskId");
//更新xmTraceId数据到task表
scaMirrorConfigInfo.put("xmTraceId",response.getJSONObject("xmTraceId").toString());
pipTask.setTaskProperties(scaMirrorConfigInfo);
pipTaskDao.updateById(pipTask);
pollTaskStatus(restTemplate, scaTaskId); pollTaskStatus(restTemplate, scaTaskId);
} else if (message.equals("应用已经存在")) { } else if (message.equals("应用已经存在")) {
append(context,message); append(context,message);

View File

@ -6,6 +6,7 @@ import cd.casic.ci.process.engine.context.ConstantContextHolder;
import cd.casic.ci.process.engine.runContext.BaseRunContext; import cd.casic.ci.process.engine.runContext.BaseRunContext;
import cd.casic.ci.process.engine.runContext.TaskRunContext; import cd.casic.ci.process.engine.runContext.TaskRunContext;
import cd.casic.ci.process.engine.worker.base.HttpWorker; import cd.casic.ci.process.engine.worker.base.HttpWorker;
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
import cd.casic.ci.process.process.dataObject.base.PipBaseElement; import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
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;
@ -52,6 +53,9 @@ public class ScaSbomWorker extends HttpWorker {
@Resource @Resource
private TargetVersionServiceImpl targetVersionService; private TargetVersionServiceImpl targetVersionService;
@Resource
private PipTaskDao pipTaskDao;
@Override @Override
public void execute(TaskRunContext context) { public void execute(TaskRunContext context) {
int statusCode = 0; int statusCode = 0;
@ -93,7 +97,7 @@ public class ScaSbomWorker extends HttpWorker {
append(context,"目标文件不存在或不可读"); append(context,"目标文件不存在或不可读");
} }
handleUpload(pipTask.getTaskProperties(), file,context); handleUpload(pipTask, file,context);
}catch (Exception e){ }catch (Exception e){
append(context,"==================SCA-SBOM节点执行失败================="); append(context,"==================SCA-SBOM节点执行失败=================");
append(context,"SCA-SBOM节点执行失败失败请检查当前节点配置!"); append(context,"SCA-SBOM节点执行失败失败请检查当前节点配置!");
@ -106,7 +110,8 @@ public class ScaSbomWorker extends HttpWorker {
localVariables.put("statusCode", statusCode + ""); localVariables.put("statusCode", statusCode + "");
} }
private void handleUpload(Map<String,Object> scaSbomConfigInfo, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { private void handleUpload(PipTask pipTask, File file, BaseRunContext context) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
Map<String, Object> scaSbomConfigInfo = pipTask.getTaskProperties();
RestTemplate restTemplate = getRestTemplateWithoutSANCheck(); RestTemplate restTemplate = getRestTemplateWithoutSANCheck();
String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/sbom/detect-file"; String scaUploadUrl = ConstantContextHolder.getScaIp() + "/openapi/v1/sbom/detect-file";
MultiValueMap<String, Object> body = buildRequestBody(scaSbomConfigInfo, file); MultiValueMap<String, Object> body = buildRequestBody(scaSbomConfigInfo, file);
@ -124,6 +129,11 @@ public class ScaSbomWorker extends HttpWorker {
JSONObject data = response.getJSONObject("data"); JSONObject data = response.getJSONObject("data");
Integer scaTaskId = data.getInteger("scaTaskId"); Integer scaTaskId = data.getInteger("scaTaskId");
//更新xmTraceId数据到task表
scaSbomConfigInfo.put("xmTraceId",response.getJSONObject("xmTraceId").toString());
pipTask.setTaskProperties(scaSbomConfigInfo);
pipTaskDao.updateById(pipTask);
pollTaskStatus(restTemplate, scaTaskId); pollTaskStatus(restTemplate, scaTaskId);
} else if (message.equals("应用已经存在")) { } else if (message.equals("应用已经存在")) {
append(context,message); append(context,message);