diff --git a/app/core/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java b/app/core/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java index e8ac284a8..a701487e1 100644 --- a/app/core/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java +++ b/app/core/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java @@ -238,14 +238,14 @@ public class EndpointConfiguration { addEndpointToGroup("PageOps", "rotate-pdf"); addEndpointToGroup("PageOps", "multi-page-layout"); addEndpointToGroup("PageOps", "scale-pages"); - addEndpointToGroup("PageOps", "adjust-contrast"); addEndpointToGroup("PageOps", "crop"); - addEndpointToGroup("PageOps", "auto-split-pdf"); addEndpointToGroup("PageOps", "extract-page"); addEndpointToGroup("PageOps", "pdf-to-single-page"); + addEndpointToGroup("PageOps", "auto-split-pdf"); addEndpointToGroup("PageOps", "split-by-size-or-count"); addEndpointToGroup("PageOps", "overlay-pdf"); addEndpointToGroup("PageOps", "split-pdf-by-sections"); + addEndpointToGroup("PageOps", "split-pdf-by-chapters"); // Adding endpoints to "Convert" group addEndpointToGroup("Convert", "pdf-to-img"); @@ -274,27 +274,43 @@ public class EndpointConfiguration { addEndpointToGroup("Security", "sanitize-pdf"); addEndpointToGroup("Security", "auto-redact"); addEndpointToGroup("Security", "redact"); + addEndpointToGroup("Security", "validate-signature"); + addEndpointToGroup("Security", "stamp"); + addEndpointToGroup("Security", "sign"); // Adding endpoints to "Other" group addEndpointToGroup("Other", "ocr-pdf"); addEndpointToGroup("Other", "add-image"); - addEndpointToGroup("Other", "compress-pdf"); addEndpointToGroup("Other", "extract-images"); addEndpointToGroup("Other", "change-metadata"); - addEndpointToGroup("Other", "extract-image-scans"); - addEndpointToGroup("Other", "sign"); addEndpointToGroup("Other", "flatten"); - addEndpointToGroup("Other", "repair"); addEndpointToGroup("Other", "unlock-pdf-forms"); addEndpointToGroup("Other", REMOVE_BLANKS); addEndpointToGroup("Other", "remove-annotations"); addEndpointToGroup("Other", "compare"); addEndpointToGroup("Other", "add-page-numbers"); - addEndpointToGroup("Other", "auto-rename"); addEndpointToGroup("Other", "get-info-on-pdf"); - addEndpointToGroup("Other", "show-javascript"); addEndpointToGroup("Other", "remove-image-pdf"); addEndpointToGroup("Other", "add-attachments"); + addEndpointToGroup("Other", "view-pdf"); + addEndpointToGroup("Other", "replace-and-invert-color-pdf"); + addEndpointToGroup("Other", "multi-tool"); + + // Adding endpoints to "Advance" group + addEndpointToGroup("Advance", "adjust-contrast"); + addEndpointToGroup("Advance", "compress-pdf"); + addEndpointToGroup("Advance", "extract-image-scans"); + addEndpointToGroup("Advance", "repair"); + addEndpointToGroup("Advance", "auto-rename"); + addEndpointToGroup("Advance", "pipeline"); + addEndpointToGroup("Advance", "scanner-effect"); + addEndpointToGroup("Advance", "auto-split-pdf"); + addEndpointToGroup("Advance", "show-javascript"); + addEndpointToGroup("Advance", "split-by-size-or-count"); + addEndpointToGroup("Advance", "overlay-pdf"); + addEndpointToGroup("Advance", "split-pdf-by-sections"); + addEndpointToGroup("Advance", "edit-table-of-contents"); + addEndpointToGroup("Advance", "split-pdf-by-chapters"); // CLI addEndpointToGroup("CLI", "compress-pdf"); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java index 8efd983b0..5eff72a4a 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java @@ -56,8 +56,8 @@ public class ConvertImgPDFController { summary = "Convert PDF to image(s)", description = "This endpoint converts a PDF file to image(s) with the specified image format," - + " color type, and DPI. Users can choose to get a single image or multiple" - + " images. Input:PDF Output:Image Type:SI-Conditional") + + " color type, and DPI. Users can choose to get a single image or multiple" + + " images. Input:PDF Output:Image Type:SI-Conditional") public ResponseEntity convertToImage(@ModelAttribute ConvertToImageRequest request) throws Exception { MultipartFile file = request.getFileInput(); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java index 1a0ae7516..3992595ab 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java @@ -55,9 +55,9 @@ public class ExtractImageScansController { summary = "Extract image scans from an input file", description = "This endpoint extracts image scans from a given file based on certain" - + " parameters. Users can specify angle threshold, tolerance, minimum area," - + " minimum contour area, and border size. Input:PDF Output:IMAGE/ZIP" - + " Type:SIMO") + + " parameters. Users can specify angle threshold, tolerance, minimum area," + + " minimum contour area, and border size. Input:PDF Output:IMAGE/ZIP" + + " Type:SIMO") public ResponseEntity extractImageScans( @ModelAttribute ExtractImageScansRequest request) throws IOException, InterruptedException { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java index e572432df..fc7b7d298 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java @@ -47,7 +47,8 @@ public class PrintFileController { throws IOException { MultipartFile file = request.getFileInput(); String originalFilename = file.getOriginalFilename(); - if (originalFilename != null && (originalFilename.contains("..") || Paths.get(originalFilename).isAbsolute())) { + if (originalFilename != null + && (originalFilename.contains("..") || Paths.get(originalFilename).isAbsolute())) { throw new IOException("Invalid file path detected: " + originalFilename); } String printerName = request.getPrinterName(); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java index 7d4b2e3c9..f5bc9dc65 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java @@ -42,7 +42,6 @@ import stirling.software.common.service.CustomPDFDocumentFactory; import stirling.software.common.util.TempFile; import stirling.software.common.util.TempFileManager; import stirling.software.common.util.WebResponseUtils; -import java.lang.IllegalArgumentException; @RestController @RequestMapping("/api/v1/misc") diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java index d79105c26..44f2b892a 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java @@ -331,7 +331,8 @@ public class PipelineProcessor { for (File file : files) { Path normalizedPath = Paths.get(file.getName()).normalize(); if (normalizedPath.startsWith("..")) { - throw new SecurityException("Potential path traversal attempt in file name: " + file.getName()); + throw new SecurityException( + "Potential path traversal attempt in file name: " + file.getName()); } Path path = Paths.get(file.getAbsolutePath()); // debug statement diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java index fd5a9b288..484a1c116 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java @@ -83,7 +83,9 @@ public class WatermarkController { MultipartFile watermarkImage = request.getWatermarkImage(); if (watermarkImage != null) { String watermarkImageFileName = watermarkImage.getOriginalFilename(); - if (watermarkImageFileName != null && (watermarkImageFileName.contains("..") || watermarkImageFileName.startsWith("/"))) { + if (watermarkImageFileName != null + && (watermarkImageFileName.contains("..") + || watermarkImageFileName.startsWith("/"))) { throw new SecurityException("Invalid file path in watermarkImage"); } } diff --git a/build.gradle b/build.gradle index 3cdfbc72c..0c62a0e07 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,7 @@ repositories { allprojects { group = 'stirling.software' - version = '1.0.2' + version = '1.1.0' configurations.configureEach { exclude group: 'commons-logging', module: 'commons-logging'