From 6235c94885caefc238775946d5c775bba98c97b4 Mon Sep 17 00:00:00 2001 From: tknall Date: Tue, 29 Apr 2008 12:13:11 +0000 Subject: a) Two stage verification (analysis and verification) now throws PDFDocumentException(ErrorCode.DOCUMENT_NOT_SIGNED,...) if necessary. b) Do not try to remove svn-metadata while clearing temporary directory any more (preventing annoying error message). git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@259 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java | 7 +++++++ .../java/at/gv/egiz/pdfas/impl/vfilter/VerificationFilterImpl.java | 4 +--- src/main/java/at/knowcenter/wag/egov/egiz/cfg/SettingsReader.java | 4 ++++ .../at/knowcenter/wag/egov/egiz/web/servlets/VerifyServlet.java | 3 ++- 4 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java index f0c85d4..ce6f776 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/PdfAsObject.java @@ -47,6 +47,7 @@ import at.gv.egiz.pdfas.impl.vfilter.VerificationFilterParametersImpl; import at.knowcenter.wag.egov.egiz.PdfAS; import at.knowcenter.wag.egov.egiz.PdfASID; import at.knowcenter.wag.egov.egiz.cfg.SettingsReader; +import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException; import at.knowcenter.wag.egov.egiz.exceptions.PresentableException; import at.knowcenter.wag.egov.egiz.exceptions.SignatureException; import at.knowcenter.wag.egov.egiz.framework.SignatorFactory; @@ -369,6 +370,12 @@ public class PdfAsObject implements PdfAs CheckHelper.checkVerifyAfterAnalysisParameters(verifyAfterAnalysisParameters); List signatures = verifyAfterAnalysisParameters.getAnalyzeResult().getSignatures(); + + // added by tknall + if (signatures == null || signatures.isEmpty()) { + throw new PDFDocumentException(ErrorCode.DOCUMENT_NOT_SIGNED, "PDF document not signed."); //$NON-NLS-1$ + } + List signature_holders = new ArrayList(signatures.size()); Iterator it = signatures.iterator(); while (it.hasNext()) diff --git a/src/main/java/at/gv/egiz/pdfas/impl/vfilter/VerificationFilterImpl.java b/src/main/java/at/gv/egiz/pdfas/impl/vfilter/VerificationFilterImpl.java index 81b0364..d353b9a 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/vfilter/VerificationFilterImpl.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/vfilter/VerificationFilterImpl.java @@ -135,12 +135,10 @@ public class VerificationFilterImpl implements VerificationFilter } - log.trace("extractSignaturHolders finished."); + log.trace("extractSignaturHolders finished (" + (signatureHolderChain != null ? signatureHolderChain.size() : 0) + " elements)."); sw.stop(); log.debug("extractSignatureHolders: " + sw.getTime() + "ms."); - - return signatureHolderChain; } diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/cfg/SettingsReader.java b/src/main/java/at/knowcenter/wag/egov/egiz/cfg/SettingsReader.java index 6481401..1fa3ad6 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/cfg/SettingsReader.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/cfg/SettingsReader.java @@ -678,6 +678,10 @@ public class SettingsReader implements Serializable File[] files = temp_dir.listFiles(); for (int i = 0; i < files.length; i++) { + // added by tknall: do not try to remove svn-metadata + if (files[i].getName().endsWith(".svn")) { + continue; + } logger_.debug(" Clearing temporary file: " + files[i]); boolean delete_success = files[i].delete(); if (!delete_success) diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/web/servlets/VerifyServlet.java b/src/main/java/at/knowcenter/wag/egov/egiz/web/servlets/VerifyServlet.java index 001b8b3..c9ed314 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/web/servlets/VerifyServlet.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/web/servlets/VerifyServlet.java @@ -38,6 +38,7 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import at.gv.egiz.pdfas.exceptions.ErrorCode; import at.gv.egiz.pdfas.framework.config.SettingsHelper; import at.gv.egiz.pdfas.framework.input.DataSource; import at.gv.egiz.pdfas.framework.input.ExtractionStage; @@ -339,7 +340,7 @@ public class VerifyServlet extends HttpServlet if (filtered_signature_holders.size() == 0) { - throw new PDFDocumentException(206, "PDF document not signed."); //$NON-NLS-1$ + throw new PDFDocumentException(ErrorCode.DOCUMENT_NOT_SIGNED, "PDF document not signed."); //$NON-NLS-1$ } return filtered_signature_holders; -- cgit v1.2.3