diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflCrashesInfoServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflCrashesInfoServiceImpl.java index bb224dd4..58955eed 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflCrashesInfoServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflCrashesInfoServiceImpl.java @@ -12,6 +12,7 @@ import cd.casic.ci.process.process.dataObject.aflManager.AflCrashesInfo; import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; import cd.casic.ci.process.process.service.aflManager.AflCrashesInfoService; import cd.casic.ci.process.process.service.resource.ResourceManagerService; +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; @@ -69,6 +70,8 @@ public class AflCrashesInfoServiceImpl extends ServiceImpl impleme } PipResourceMachine resourceMachine = resourceById.getResourceMachine(); -// resourceMachine.setPassword("hnidc0628cn!@#lld"); - + String password = CryptogramUtil.doDecrypt(resourceMachine.getPassword()); + resourceMachine.setPassword(password); AflInfo aflInfo = SftpUploadUtil.downloadFileSftpForInputStreamAndSetAflInfo(resourceMachine.getMachineHost(), Integer.parseInt(resourceMachine.getSshPort()), resourceMachine.getUsername(), resourceMachine.getPassword(),null, remoteFilePath + "PIP_" + req.getPipelineId() + "/ai_afl/default/fuzzer_stats"); //在本地创建一个新文件夹,将远程文件复制一份过去 List sourceFilePaths = new ArrayList<>(); @@ -122,6 +123,8 @@ public class AflInfoServiceImpl extends ServiceImpl impleme } PipResourceMachine resourceMachine = resourceById.getResourceMachine(); + String password = CryptogramUtil.doDecrypt(resourceMachine.getPassword()); + resourceMachine.setPassword(password); AflInfo aflInfo = SftpUploadUtil.downloadFileSftpForInputStreamAndSetAflInfo(resourceMachine.getMachineHost(), Integer.parseInt(resourceMachine.getSshPort()), resourceMachine.getUsername(), resourceMachine.getPassword(),null, remoteFilePath + "PIP_" + req.getPipelineId() + "/ai_afl/default/fuzzer_stats"); return AflManagerConverter.INSTANCE.toAflInfoResp(aflInfo); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflPlotInfoServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflPlotInfoServiceImpl.java index 40e6770f..d9b26bb3 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflPlotInfoServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/aflManager/impl/AflPlotInfoServiceImpl.java @@ -12,6 +12,7 @@ import cd.casic.ci.process.process.dataObject.aflManager.AflPlotInfo; import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; import cd.casic.ci.process.process.service.aflManager.AflPlotInfoService; import cd.casic.ci.process.process.service.resource.ResourceManagerService; +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; @@ -65,6 +66,8 @@ public class AflPlotInfoServiceImpl extends ServiceImpl resultList = SftpUploadUtil.findSeedCount(resourceMachine.getMachineHost(), Integer.parseInt(resourceMachine.getSshPort()), resourceMachine.getUsername(), resourceMachine.getPassword(), null, remoteFilePath + "PIP_" + req.getPipelineId() + "/ai_afl/default/queue/"); @@ -108,9 +110,13 @@ public class AflSeedInfoServiceImpl extends ServiceImpl files = SftpUploadUtil.listFilesInRemoteDirectory( diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/SftpUploadUtil.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/SftpUploadUtil.java index f98588a5..5f4f9d83 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/SftpUploadUtil.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/SftpUploadUtil.java @@ -7,6 +7,7 @@ import com.amazonaws.util.IOUtils; import com.jcraft.jsch.*; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; import java.io.*; @@ -622,8 +623,8 @@ public class SftpUploadUtil { //解析 key=value 内容 Map statsMap = new HashMap<>(); for (String line : fileContent.split("\\r?\\n")) { - if (line.contains("=")) { - String[] parts = line.split("=", 2); + if (line.contains(":")) { + String[] parts = line.split(":", 2); statsMap.put(parts[0].trim(), parts[1].trim()); } } @@ -865,15 +866,17 @@ public class SftpUploadUtil { channelSftp.cd(remoteDir); // 列出文件 - Vector entries = channelSftp.ls("."); List fileNames = new ArrayList<>(); - for (ChannelSftp.LsEntry entry : entries) { - String name = entry.getFilename(); - if (!name.equals(".") && !name.equals("..")) { - fileNames.add(remoteDir + name); // 返回完整路径 + + Vector entries = channelSftp.ls("."); + if (!ObjectUtils.isEmpty(entries)){ + for (ChannelSftp.LsEntry entry : entries) { + String name = entry.getFilename(); + if (!name.equals(".") && !name.equals("..")) { + fileNames.add(remoteDir + name); // 返回完整路径 + } } } - return fileNames; } catch (JSchException e) { throw new SftpUploadException("SFTP 连接或认证失败: " + e.getMessage(), e); @@ -1198,7 +1201,7 @@ public class SftpUploadUtil { // 遍历远程文件路径并下载 for (String remoteFile : remoteFilePaths) { String fileName = new File(remoteFile).getName(); - String localFilePath = localDir + File.separator + fileName; + String localFilePath = localDir + fileName; try (InputStream in = channelSftp.get(remoteFile); FileOutputStream out = new FileOutputStream(localFilePath)) {