From 1e86073dffdadaeebcc51431253ea641239abe66 Mon Sep 17 00:00:00 2001 From: Philipp Schramm Date: Thu, 7 Oct 2021 14:35:44 +0200 Subject: [PATCH 1/2] Just a test without PosixFilePermission --- .../v1/server/segmentation/PdfSegmentationService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java index 475a45d7..bb92cf61 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java @@ -64,8 +64,10 @@ public class PdfSegmentationService { PDDocument pdDocument = null; try { //create tempFile + // TODO this is just for windows!!!! Use attr in real life FileAttribute> attr = PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------")); - File tempFile = Files.createTempFile("document", ".pdf", attr).toFile(); +// File tempFile = Files.createTempFile("document", ".pdf", attr).toFile(); + File tempFile = Files.createTempFile("document", ".pdf").toFile(); try (var fos = new FileOutputStream(tempFile)) { IOUtils.copy(documentInputStream, fos); From 535316c3a7740f61c682ae3d938f33671660c667 Mon Sep 17 00:00:00 2001 From: Philipp Schramm Date: Thu, 7 Oct 2021 15:35:42 +0200 Subject: [PATCH 2/2] Bugfix with 'posix:permissions' for Windows systems --- .../segmentation/PdfSegmentationService.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java index bb92cf61..7c577f48 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java @@ -13,6 +13,7 @@ import java.util.List; import java.util.Set; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.SystemUtils; import org.apache.pdfbox.io.MemoryUsageSetting; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; @@ -64,10 +65,19 @@ public class PdfSegmentationService { PDDocument pdDocument = null; try { //create tempFile - // TODO this is just for windows!!!! Use attr in real life - FileAttribute> attr = PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------")); -// File tempFile = Files.createTempFile("document", ".pdf", attr).toFile(); - File tempFile = Files.createTempFile("document", ".pdf").toFile(); + File tempFile; + + if(SystemUtils.IS_OS_UNIX) { + FileAttribute> attr = PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------")); + tempFile = Files.createTempFile("document", ".pdf", attr).toFile(); + } + else { + tempFile = Files.createTempFile("document", ".pdf").toFile(); + tempFile.setReadable(true, true); + tempFile.setWritable(true, true); + tempFile.setExecutable(true, true); + } + try (var fos = new FileOutputStream(tempFile)) { IOUtils.copy(documentInputStream, fos);