From 056f4f46ebe39fbb283ae47795275d9a11408747 Mon Sep 17 00:00:00 2001 From: Dario Ghunney Ware Date: Thu, 22 May 2025 11:28:20 +0100 Subject: [PATCH] clean up --- .../SPDF/config/security/UserService.java | 2 +- .../api/SplitPdfByChaptersController.java | 4 +- .../api/pipeline/ApiDocService.java | 1 + .../api/pipeline/PipelineProcessor.java | 1 + .../api/pipeline/UserServiceInterface.java | 9 -- .../controller/web/GeneralWebController.java | 2 +- .../controller/web/SignatureController.java | 2 +- .../SPDF/service/PdfMetadataService.java | 114 ------------------ .../api/pipeline/PipelineProcessorTest.java | 1 + .../service/PdfMetadataServiceBasicTest.java | 4 +- .../SPDF/service/PdfMetadataServiceTest.java | 5 +- 11 files changed, 13 insertions(+), 132 deletions(-) delete mode 100644 src/main/java/stirling/software/SPDF/controller/api/pipeline/UserServiceInterface.java delete mode 100644 src/main/java/stirling/software/SPDF/service/PdfMetadataService.java diff --git a/src/main/java/stirling/software/SPDF/config/security/UserService.java b/src/main/java/stirling/software/SPDF/config/security/UserService.java index 3d094145c..71aad721d 100644 --- a/src/main/java/stirling/software/SPDF/config/security/UserService.java +++ b/src/main/java/stirling/software/SPDF/config/security/UserService.java @@ -31,7 +31,6 @@ import lombok.extern.slf4j.Slf4j; import stirling.software.SPDF.config.interfaces.DatabaseInterface; import stirling.software.SPDF.config.security.saml2.CustomSaml2AuthenticatedPrincipal; import stirling.software.SPDF.config.security.session.SessionPersistentRegistry; -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; import stirling.software.SPDF.model.AuthenticationType; import stirling.software.SPDF.model.Authority; import stirling.software.SPDF.model.Role; @@ -40,6 +39,7 @@ import stirling.software.SPDF.repository.AuthorityRepository; import stirling.software.SPDF.repository.UserRepository; import stirling.software.common.model.ApplicationProperties; import stirling.software.common.model.exception.UnsupportedProviderException; +import stirling.software.common.service.UserServiceInterface; @Service @Slf4j diff --git a/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java b/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java index dc642dd13..80ec89738 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/SplitPdfByChaptersController.java @@ -31,10 +31,10 @@ import lombok.NoArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import stirling.software.SPDF.model.PdfMetadata; import stirling.software.SPDF.model.api.SplitPdfByChaptersRequest; -import stirling.software.SPDF.service.PdfMetadataService; +import stirling.software.common.model.PdfMetadata; import stirling.software.common.service.CustomPDFDocumentFactory; +import stirling.software.common.service.PdfMetadataService; import stirling.software.common.util.WebResponseUtils; @RestController diff --git a/src/main/java/stirling/software/SPDF/controller/api/pipeline/ApiDocService.java b/src/main/java/stirling/software/SPDF/controller/api/pipeline/ApiDocService.java index eb7730e3e..438ea980a 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/pipeline/ApiDocService.java +++ b/src/main/java/stirling/software/SPDF/controller/api/pipeline/ApiDocService.java @@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; import stirling.software.SPDF.SPDFApplication; import stirling.software.SPDF.model.ApiEndpoint; import stirling.software.SPDF.model.Role; +import stirling.software.common.service.UserServiceInterface; @Service @Slf4j diff --git a/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java b/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java index 2c9b5568e..21be0861b 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java +++ b/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java @@ -36,6 +36,7 @@ import stirling.software.SPDF.model.PipelineConfig; import stirling.software.SPDF.model.PipelineOperation; import stirling.software.SPDF.model.PipelineResult; import stirling.software.SPDF.model.Role; +import stirling.software.common.service.UserServiceInterface; @Service @Slf4j diff --git a/src/main/java/stirling/software/SPDF/controller/api/pipeline/UserServiceInterface.java b/src/main/java/stirling/software/SPDF/controller/api/pipeline/UserServiceInterface.java deleted file mode 100644 index 3b69456b1..000000000 --- a/src/main/java/stirling/software/SPDF/controller/api/pipeline/UserServiceInterface.java +++ /dev/null @@ -1,9 +0,0 @@ -package stirling.software.SPDF.controller.api.pipeline; - -public interface UserServiceInterface { - String getApiKeyForUser(String username); - - String getCurrentUsername(); - - long getTotalUsersCount(); -} diff --git a/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java b/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java index fae51567b..139ff0b97 100644 --- a/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java +++ b/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java @@ -24,11 +24,11 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; import stirling.software.SPDF.model.SignatureFile; import stirling.software.SPDF.service.SignatureService; import stirling.software.common.configuration.InstallationPathConfig; import stirling.software.common.configuration.RuntimePathConfig; +import stirling.software.common.service.UserServiceInterface; import stirling.software.common.util.GeneralUtil; @Controller diff --git a/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java b/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java index eaf671393..de03680e1 100644 --- a/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java +++ b/src/main/java/stirling/software/SPDF/controller/web/SignatureController.java @@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; import stirling.software.SPDF.service.SignatureService; +import stirling.software.common.service.UserServiceInterface; @Controller @RequestMapping("/api/v1/general") diff --git a/src/main/java/stirling/software/SPDF/service/PdfMetadataService.java b/src/main/java/stirling/software/SPDF/service/PdfMetadataService.java deleted file mode 100644 index 3bbb938bf..000000000 --- a/src/main/java/stirling/software/SPDF/service/PdfMetadataService.java +++ /dev/null @@ -1,114 +0,0 @@ -package stirling.software.SPDF.service; - -import java.util.Calendar; - -import org.apache.pdfbox.pdmodel.PDDocument; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Service; - -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; -import stirling.software.SPDF.model.PdfMetadata; -import stirling.software.common.model.ApplicationProperties; - -@Service -public class PdfMetadataService { - - private final ApplicationProperties applicationProperties; - private final String stirlingPDFLabel; - private final UserServiceInterface userService; - private final boolean runningProOrHigher; - - public PdfMetadataService( - ApplicationProperties applicationProperties, - @Qualifier("StirlingPDFLabel") String stirlingPDFLabel, - @Qualifier("runningProOrHigher") boolean runningProOrHigher, - @Autowired(required = false) UserServiceInterface userService) { - this.applicationProperties = applicationProperties; - this.stirlingPDFLabel = stirlingPDFLabel; - this.userService = userService; - this.runningProOrHigher = runningProOrHigher; - } - - public PdfMetadata extractMetadataFromPdf(PDDocument pdf) { - return PdfMetadata.builder() - .author(pdf.getDocumentInformation().getAuthor()) - .producer(pdf.getDocumentInformation().getProducer()) - .title(pdf.getDocumentInformation().getTitle()) - .creator(pdf.getDocumentInformation().getCreator()) - .subject(pdf.getDocumentInformation().getSubject()) - .keywords(pdf.getDocumentInformation().getKeywords()) - .creationDate(pdf.getDocumentInformation().getCreationDate()) - .modificationDate(pdf.getDocumentInformation().getModificationDate()) - .build(); - } - - public void setDefaultMetadata(PDDocument pdf) { - PdfMetadata metadata = extractMetadataFromPdf(pdf); - setMetadataToPdf(pdf, metadata); - } - - public void setMetadataToPdf(PDDocument pdf, PdfMetadata pdfMetadata) { - setMetadataToPdf(pdf, pdfMetadata, false); - } - - public void setMetadataToPdf(PDDocument pdf, PdfMetadata pdfMetadata, boolean newlyCreated) { - if (newlyCreated || pdfMetadata.getCreationDate() == null) { - setNewDocumentMetadata(pdf, pdfMetadata); - } - setCommonMetadata(pdf, pdfMetadata); - } - - private void setNewDocumentMetadata(PDDocument pdf, PdfMetadata pdfMetadata) { - - String creator = stirlingPDFLabel; - - if (applicationProperties - .getPremium() - .getProFeatures() - .getCustomMetadata() - .isAutoUpdateMetadata() - && runningProOrHigher) { - - creator = - applicationProperties - .getPremium() - .getProFeatures() - .getCustomMetadata() - .getCreator(); - pdf.getDocumentInformation().setProducer(stirlingPDFLabel); - } - - pdf.getDocumentInformation().setCreator(creator); - pdf.getDocumentInformation().setCreationDate(Calendar.getInstance()); - } - - private void setCommonMetadata(PDDocument pdf, PdfMetadata pdfMetadata) { - String title = pdfMetadata.getTitle(); - pdf.getDocumentInformation().setTitle(title); - pdf.getDocumentInformation().setProducer(stirlingPDFLabel); - pdf.getDocumentInformation().setSubject(pdfMetadata.getSubject()); - pdf.getDocumentInformation().setKeywords(pdfMetadata.getKeywords()); - pdf.getDocumentInformation().setModificationDate(Calendar.getInstance()); - - String author = pdfMetadata.getAuthor(); - if (applicationProperties - .getPremium() - .getProFeatures() - .getCustomMetadata() - .isAutoUpdateMetadata() - && runningProOrHigher) { - author = - applicationProperties - .getPremium() - .getProFeatures() - .getCustomMetadata() - .getAuthor(); - - if (userService != null) { - author = author.replace("username", userService.getCurrentUsername()); - } - } - pdf.getDocumentInformation().setAuthor(author); - } -} diff --git a/src/test/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessorTest.java b/src/test/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessorTest.java index b1c8bd62a..45baa992f 100644 --- a/src/test/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessorTest.java +++ b/src/test/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessorTest.java @@ -22,6 +22,7 @@ import jakarta.servlet.ServletContext; import stirling.software.SPDF.model.PipelineConfig; import stirling.software.SPDF.model.PipelineOperation; import stirling.software.SPDF.model.PipelineResult; +import stirling.software.common.service.UserServiceInterface; @ExtendWith(MockitoExtension.class) class PipelineProcessorTest { diff --git a/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceBasicTest.java b/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceBasicTest.java index c38c8b92a..ab4e846cc 100644 --- a/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceBasicTest.java +++ b/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceBasicTest.java @@ -14,12 +14,12 @@ import org.apache.pdfbox.pdmodel.PDDocumentInformation; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; -import stirling.software.SPDF.model.PdfMetadata; import stirling.software.common.model.ApplicationProperties; import stirling.software.common.model.ApplicationProperties.Premium; import stirling.software.common.model.ApplicationProperties.Premium.ProFeatures; import stirling.software.common.model.ApplicationProperties.Premium.ProFeatures.CustomMetadata; +import stirling.software.common.model.PdfMetadata; +import stirling.software.common.service.UserServiceInterface; class PdfMetadataServiceBasicTest { diff --git a/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceTest.java b/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceTest.java index 7b510e322..9d3270014 100644 --- a/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceTest.java +++ b/src/test/java/stirling/software/SPDF/service/PdfMetadataServiceTest.java @@ -17,12 +17,13 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface; -import stirling.software.SPDF.model.PdfMetadata; import stirling.software.common.model.ApplicationProperties; import stirling.software.common.model.ApplicationProperties.Premium; import stirling.software.common.model.ApplicationProperties.Premium.ProFeatures; import stirling.software.common.model.ApplicationProperties.Premium.ProFeatures.CustomMetadata; +import stirling.software.common.model.PdfMetadata; +import stirling.software.common.service.PdfMetadataService; +import stirling.software.common.service.UserServiceInterface; @ExtendWith(MockitoExtension.class) class PdfMetadataServiceTest {