AFL相关 worker:魔法值抽取为静态变量
运行时全局变量作用域访问方法提供
This commit is contained in:
parent
8157f29645
commit
7160577a56
@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @pi.protocol: http
|
||||
@ -29,4 +30,8 @@ public class VariableController {
|
||||
Object variable = variableService.getPipelineContextGlobalVariable(pipelineId, varName);
|
||||
return CommonResult.success(variable);
|
||||
}
|
||||
@GetMapping("/getPipelineContextGlobalVariables/{pipelineId}")
|
||||
public CommonResult<Map<String,Object>> getPipelineContextGlobalVariables(@PathVariable("pipelineId") String pipelineId){
|
||||
return CommonResult.success(variableService.getPipelineContextGlobalVariables(pipelineId));
|
||||
}
|
||||
}
|
||||
|
@ -4,4 +4,5 @@ public class AFLConstant {
|
||||
|
||||
public static final String COMMAND_END="commandEnd";
|
||||
public static final String EXECUTABLE_NAME ="executableName";
|
||||
public static final String RUNNING_TIME ="runningTime";
|
||||
}
|
||||
|
@ -77,13 +77,13 @@ public class AFLWorker extends DockerWorker {
|
||||
TargetVersion targetVersion = targetVersionService.getById(pipeline.getTargetVersionId());
|
||||
String fileName = targetVersion.getFileName();
|
||||
append(context,"AFL 输出路径:"+output);
|
||||
Object timeObj = taskProperties.get("runningTime");
|
||||
Object timeObj = taskProperties.get(RUNNING_TIME);
|
||||
Double timeHours = Double.valueOf(String.valueOf(timeObj));
|
||||
String commandScript = "docker run -v "+volumeWorkDirPath+":/test -it "+imageName+" bash\n" +
|
||||
String commandScript = "docker run -v "+volumeWorkDirPath+":"+AFL_DOCKER_BASE_DIR+" -it "+imageName+" bash\n" +
|
||||
"cd " + AFL_DOCKER_BASE_DIR+File.separator+workDir+ "\n"+
|
||||
cdSourceName(fileName) +
|
||||
"mkdir -p "+ AFL_DOCKER_BASE_DIR+File.separator+output+"\n" +
|
||||
"afl-fuzz -i "+ AFL_DOCKER_BASE_DIR+File.separator+seedPath+" -o "+ AFL_DOCKER_BASE_DIR+File.separator+output+" "+ executableName + " " +commandEnd;
|
||||
"afl-fuzz -i "+ AFL_DOCKER_BASE_DIR+File.separator+seedPath+" -o "+ AFL_DOCKER_BASE_DIR+File.separator+output+" ./"+ executableName + " " +commandEnd;
|
||||
try {
|
||||
//将节点的配置信息反编译成对象
|
||||
log.info("AFL模糊测试执行脚本:{}",commandScript);
|
||||
|
@ -1,5 +1,8 @@
|
||||
package cd.casic.ci.process.process.service.variable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface VariableService {
|
||||
Object getPipelineContextGlobalVariable(String pipelineId,String varName);
|
||||
Map<String,Object> getPipelineContextGlobalVariables(String pipelineId);
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@ -25,4 +26,15 @@ public class VariableServiceImpl implements VariableService {
|
||||
log.info("当前全局变量:{}",globalVariables);
|
||||
return globalVariables.get(varName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String,Object> getPipelineContextGlobalVariables(String pipelineId) {
|
||||
BaseRunContext context = contextManager.getContext(pipelineId);
|
||||
if (context== null) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
Map<String, Object> globalVariables = context.getGlobalVariables();
|
||||
log.info("当前全局变量:{}",globalVariables);
|
||||
return globalVariables;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user