From 08d5f09e2b6ff39dccc069676214bd84b2a9284a Mon Sep 17 00:00:00 2001 From: mscarsel Date: Tue, 14 Jan 2025 18:36:59 +0100 Subject: [PATCH] [P4ADEV-1830] fix --- .../exception/custom/FileUploadException.java | 4 ++++ .../pu/fileshare/service/FileStorerService.java | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/it/gov/pagopa/pu/fileshare/exception/custom/FileUploadException.java b/src/main/java/it/gov/pagopa/pu/fileshare/exception/custom/FileUploadException.java index 67b2bdb..098a68f 100644 --- a/src/main/java/it/gov/pagopa/pu/fileshare/exception/custom/FileUploadException.java +++ b/src/main/java/it/gov/pagopa/pu/fileshare/exception/custom/FileUploadException.java @@ -4,4 +4,8 @@ public class FileUploadException extends RuntimeException { public FileUploadException(String message) { super(message); } + + public FileUploadException(String message, Throwable e) { + super(message,e); + } } diff --git a/src/main/java/it/gov/pagopa/pu/fileshare/service/FileStorerService.java b/src/main/java/it/gov/pagopa/pu/fileshare/service/FileStorerService.java index 562cda9..0bd7704 100644 --- a/src/main/java/it/gov/pagopa/pu/fileshare/service/FileStorerService.java +++ b/src/main/java/it/gov/pagopa/pu/fileshare/service/FileStorerService.java @@ -37,8 +37,8 @@ public String saveToSharedFolder(MultipartFile file, String relativePath){ String filename = org.springframework.util.StringUtils.cleanPath( StringUtils.defaultString(file.getOriginalFilename())); FileService.validateFilename(filename); - Path fileLocation = concatenatePaths(relativePath,filename); - Path absolutePath = concatenatePaths(foldersPathsConfig.getShared(), fileLocation.toString()); + Path relativeFileLocation = concatenatePaths(relativePath,filename); + Path absolutePath = concatenatePaths(foldersPathsConfig.getShared(), relativeFileLocation.toString()); //create missing parent folder, if any try { if (!Files.exists(absolutePath.getParent())){ @@ -46,17 +46,18 @@ public String saveToSharedFolder(MultipartFile file, String relativePath){ } encryptAndSaveFile(file, absolutePath); }catch (Exception e) { - String errorMessage = "Error uploading file to shared folder %s".formatted( - relativePath); - log.debug( - errorMessage, e); throw new FileUploadException( - errorMessage); + "Error uploading file to shared folder %s".formatted(relativePath) + ,e); } log.debug("File upload to shared folder {} completed",relativePath); - return fileLocation.toString(); + return relativeFileLocation.toString(); } + /** + * This method expects two paths whose concatenation does not resolve into an outer folder. + * The normalized path still starts with the first path. + * */ private Path concatenatePaths(String firstPath, String secondPath) { Path concatenatedPath = Paths.get(firstPath, secondPath).normalize(); if(!concatenatedPath.startsWith(firstPath)){