From b498c519db9f8b4580054d55a4c8ea9caccae1cc Mon Sep 17 00:00:00 2001 From: HopeLi <1278288511@qq.com> Date: Sun, 6 Jul 2025 11:49:32 +0800 Subject: [PATCH] =?UTF-8?q?0706=20ljc=20=20=20afl=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=93=8D=E4=BD=9C=E4=BB=A5=E5=8F=8A=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=93=8D=E4=BD=9C=E4=BB=A5=E5=8F=8A=E6=97=B6=E5=BA=8F?= =?UTF-8?q?=E8=A1=A8=E6=93=8D=E4=BD=9C=E7=AD=89=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E5=8F=91=EF=BC=8C=E5=8C=85=E5=90=AB=E5=88=86=E7=89=87=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BB=A5=E5=8F=8A=E6=96=87=E4=BB=B6=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AflCrashesInfoServiceImpl.java | 7 +++---- .../aflManager/impl/AflInfoServiceImpl.java | 7 +++++-- .../impl/AflPlotInfoServiceImpl.java | 5 +++++ .../impl/AflSeedInfoServiceImpl.java | 17 ++++++++++----- .../casic/ci/process/util/SftpUploadUtil.java | 21 +++++++++++-------- 5 files changed, 37 insertions(+), 20 deletions(-) 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)) {