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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @pi.protocol: http
|
* @pi.protocol: http
|
||||||
@ -29,4 +30,8 @@ public class VariableController {
|
|||||||
Object variable = variableService.getPipelineContextGlobalVariable(pipelineId, varName);
|
Object variable = variableService.getPipelineContextGlobalVariable(pipelineId, varName);
|
||||||
return CommonResult.success(variable);
|
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 COMMAND_END="commandEnd";
|
||||||
public static final String EXECUTABLE_NAME ="executableName";
|
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());
|
TargetVersion targetVersion = targetVersionService.getById(pipeline.getTargetVersionId());
|
||||||
String fileName = targetVersion.getFileName();
|
String fileName = targetVersion.getFileName();
|
||||||
append(context,"AFL 输出路径:"+output);
|
append(context,"AFL 输出路径:"+output);
|
||||||
Object timeObj = taskProperties.get("runningTime");
|
Object timeObj = taskProperties.get(RUNNING_TIME);
|
||||||
Double timeHours = Double.valueOf(String.valueOf(timeObj));
|
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"+
|
"cd " + AFL_DOCKER_BASE_DIR+File.separator+workDir+ "\n"+
|
||||||
cdSourceName(fileName) +
|
cdSourceName(fileName) +
|
||||||
"mkdir -p "+ AFL_DOCKER_BASE_DIR+File.separator+output+"\n" +
|
"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 {
|
try {
|
||||||
//将节点的配置信息反编译成对象
|
//将节点的配置信息反编译成对象
|
||||||
log.info("AFL模糊测试执行脚本:{}",commandScript);
|
log.info("AFL模糊测试执行脚本:{}",commandScript);
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package cd.casic.ci.process.process.service.variable;
|
package cd.casic.ci.process.process.service.variable;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface VariableService {
|
public interface VariableService {
|
||||||
Object getPipelineContextGlobalVariable(String pipelineId,String varName);
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ -25,4 +26,15 @@ public class VariableServiceImpl implements VariableService {
|
|||||||
log.info("当前全局变量:{}",globalVariables);
|
log.info("当前全局变量:{}",globalVariables);
|
||||||
return globalVariables.get(varName);
|
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