diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-16 10:59:52 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-16 10:59:52 +0200 |
commit | 7b105bafe5a1f4c01224c8ae0b820a478b09447f (patch) | |
tree | c201dc068bf2e01c5698493225186ae070d86149 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java | |
parent | 3c4eac027bfd68bfce63a2eed010ccc2b7310802 (diff) | |
download | pdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.tar.gz pdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.tar.bz2 pdf-as-4-7b105bafe5a1f4c01224c8ae0b820a478b09447f.zip |
added basic Preprocessor infrastructure, moved logging to logback
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java index a94f63ad..85a11d0d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java @@ -34,6 +34,7 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; +import java.util.Iterator; import java.util.List; import org.apache.commons.io.IOUtils; @@ -61,6 +62,7 @@ import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; import at.gv.egiz.pdfas.lib.api.PdfAs; import at.gv.egiz.pdfas.lib.api.StatusRequest; +import at.gv.egiz.pdfas.lib.api.preprocessor.PreProcessor; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.pdfas.lib.api.sign.SignResult; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; @@ -68,6 +70,7 @@ import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; import at.gv.egiz.pdfas.lib.impl.configuration.ConfigurationImpl; import at.gv.egiz.pdfas.lib.impl.configuration.SignatureProfileConfiguration; import at.gv.egiz.pdfas.lib.impl.positioning.Positioning; +import at.gv.egiz.pdfas.lib.impl.preprocessor.PreProcessorLoader; import at.gv.egiz.pdfas.lib.impl.signing.IPdfSigner; import at.gv.egiz.pdfas.lib.impl.signing.PdfSignerFactory; import at.gv.egiz.pdfas.lib.impl.signing.pdfbox.PdfboxSignerWrapper; @@ -155,6 +158,9 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, throw new PdfAsSettingsException("Invalid settings object!"); } + // execute pre Processors + signPreProcessing(parameter); + ISettings settings = (ISettings) parameter.getConfiguration(); status = new OperationStatus(settings, parameter); @@ -217,6 +223,9 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, verifyVerifyParameter(parameter); + // execute pre Processors + verifyPreProcessing(parameter); + int signatureToVerify = parameter.getWhichSignature(); int currentSignature = 0; PDDocument doc = null; @@ -369,6 +378,9 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, throw new PdfAsSettingsException("Invalid settings object!"); } + // execute pre Processors + signPreProcessing(parameter); + ISettings settings = (ISettings) parameter.getConfiguration(); OperationStatus status = new OperationStatus(settings, parameter); @@ -502,6 +514,56 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, } } + private void listPreProcessors(List<PreProcessor> preProcessors) { + logger.debug("--------------"); + logger.debug("Listing PreProcessors:"); + + Iterator<PreProcessor> preProcessorsIterator = preProcessors.iterator(); + int idx = 0; + while(preProcessorsIterator.hasNext()) { + PreProcessor preProcessor = preProcessorsIterator.next(); + logger.debug("{}: {} [{}]", idx, preProcessor.getName(), preProcessor.getClass().getName()); + idx++; + } + logger.debug("--------------"); + } + + private void verifyPreProcessing(VerifyParameter parameter) throws PDFASError { + List<PreProcessor> preProcessors = PreProcessorLoader.getPreProcessors(parameter.getConfiguration()); + + listPreProcessors(preProcessors); + + logger.debug("executing PreProcessors for verifing:"); + Iterator<PreProcessor> preProcessorsIterator = preProcessors.iterator(); + + while(preProcessorsIterator.hasNext()) { + PreProcessor preProcessor = preProcessorsIterator.next(); + logger.debug("executing: {} [{}]", preProcessor.getName(), preProcessor.getClass().getName()); + preProcessor.verify(parameter); + logger.debug("done executing: {} [{}]", preProcessor.getName(), preProcessor.getClass().getName()); + } + + logger.debug("executing PreProcessors for verifing done"); + } + + private void signPreProcessing(SignParameter parameter) throws PDFASError { + List<PreProcessor> preProcessors = PreProcessorLoader.getPreProcessors(parameter.getConfiguration()); + + listPreProcessors(preProcessors); + + logger.debug("executing PreProcessors for signing:"); + Iterator<PreProcessor> preProcessorsIterator = preProcessors.iterator(); + + while(preProcessorsIterator.hasNext()) { + PreProcessor preProcessor = preProcessorsIterator.next(); + logger.debug("executing: {} [{}]", preProcessor.getName(), preProcessor.getClass().getName()); + preProcessor.sign(parameter); + logger.debug("done executing: {} [{}]", preProcessor.getName(), preProcessor.getClass().getName()); + } + + logger.debug("executing PreProcessors for signing done"); + } + private SignResult createSignResult(OperationStatus status) throws IOException { // ================================================================ |