From 077da35543efe71241a7a1158386cd81f41bb050 Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 1 Aug 2012 09:10:47 +0000 Subject: Removed PDFSignator Interface PDFSigner Factory Refactoring git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12249 3a0b52a2-8410-0410-bc02-ff6273a87459 --- trunk/pdf-over/pdf-signator-interface/pom.xml | 17 -- .../pdfover/pdfsignator/PDFSignatorInterface.java | 38 ---- .../at/asit/pdfover/pdfsignator/PDFSigner.java | 16 -- .../src/model/PDFSignatorInterface.ucd | 30 --- .../src/model/SignatureSequence.usd | 216 --------------------- trunk/pdf-over/pdf-signator/pom.xml | 10 - trunk/pdf-over/pdf-signer-interface/pom.xml | 1 - .../at/asit/pdfover/pdfsigner/CollimatingMark.java | 5 +- .../at/asit/pdfover/pdfsigner/PDFSignator.java | 68 +++++++ .../java/at/asit/pdfover/pdfsigner/PDFSigner.java | 20 ++ .../asit/pdfover/pdfsigner/PDFSignerFactory.java | 6 + .../at/asit/pdfover/pdfsigner/SignResultImpl.java | 2 +- .../asit/pdfover/pdfsigner/SignatureParameter.java | 20 ++ .../at/asit/pdfover/pdfsigner/SigningState.java | 4 +- .../src/model/PDFSignerInterface.ucd | 137 ++++++++++--- trunk/pdf-over/pdf-signer-pdf-as/pom.xml | 2 +- .../asit/pdfover/pdfsigner/pdfas/PDFASSigner.java | 12 +- .../pdfsigner/pdfas/PDFASSignerFactory.java | 19 ++ trunk/pdf-over/pom.xml | 4 +- 19 files changed, 251 insertions(+), 376 deletions(-) delete mode 100644 trunk/pdf-over/pdf-signator-interface/pom.xml delete mode 100644 trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignatorInterface.java delete mode 100644 trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSigner.java delete mode 100644 trunk/pdf-over/pdf-signator-interface/src/model/PDFSignatorInterface.ucd delete mode 100644 trunk/pdf-over/pdf-signator-interface/src/model/SignatureSequence.usd delete mode 100644 trunk/pdf-over/pdf-signator/pom.xml create mode 100644 trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignator.java create mode 100644 trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSigner.java create mode 100644 trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignerFactory.java create mode 100644 trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSignerFactory.java diff --git a/trunk/pdf-over/pdf-signator-interface/pom.xml b/trunk/pdf-over/pdf-signator-interface/pom.xml deleted file mode 100644 index f0985880..00000000 --- a/trunk/pdf-over/pdf-signator-interface/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - 4.0.0 - - pdf-over - at.a-sit - 4.0-SNAPSHOT - .. - - pdf-signator-interface - - - at.a-sit - pdf-signer-interface - 0.1-SNAPSHOT - - - \ No newline at end of file diff --git a/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignatorInterface.java b/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignatorInterface.java deleted file mode 100644 index 9fc21eb8..00000000 --- a/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSignatorInterface.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * - */ -package at.asit.pdfover.pdfsignator; - -import at.asit.pdfover.pdfsigner.PDFSignatureException; -import at.asit.pdfover.pdfsigner.SignResult; -import at.asit.pdfover.pdfsigner.SignatureParameter; -import at.asit.pdfover.pdfsigner.SigningState; - -/** - * The PDF-Signator Interface - * - * @author afitzek - */ -public interface PDFSignatorInterface { - - /** - * Creates signature parameter for the given pdf signer - * @param signer The pdf signer library - * @return The signature parameter - */ - public SignatureParameter GetSignatureParameters(PDFSigner signer); - - /** - * Prepares the signature - * @param parameter The signature parameter - * @return A Signature State for the signing library - */ - public SigningState SignPrepare(SignatureParameter parameter) throws PDFSignatureException; - - /** - * Performs the signature - * @param response The signing state - * @return The signed document - */ - public SignResult SignPerform(SigningState state) throws PDFSignatureException; -} diff --git a/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSigner.java b/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSigner.java deleted file mode 100644 index 6d8da945..00000000 --- a/trunk/pdf-over/pdf-signator-interface/src/main/java/at/asit/pdfover/pdfsignator/PDFSigner.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * - */ -package at.asit.pdfover.pdfsignator; - -/** - * Available PDF Signer libraries - * @author afitzek - */ -public enum PDFSigner { - /** - * @uml.property name="pDFAS" - * @uml.associationEnd - */ - PDFAS -} diff --git a/trunk/pdf-over/pdf-signator-interface/src/model/PDFSignatorInterface.ucd b/trunk/pdf-over/pdf-signator-interface/src/model/PDFSignatorInterface.ucd deleted file mode 100644 index 2a011e93..00000000 --- a/trunk/pdf-over/pdf-signator-interface/src/model/PDFSignatorInterface.ucd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/trunk/pdf-over/pdf-signator-interface/src/model/SignatureSequence.usd b/trunk/pdf-over/pdf-signator-interface/src/model/SignatureSequence.usd deleted file mode 100644 index 0823809c..00000000 --- a/trunk/pdf-over/pdf-signator-interface/src/model/SignatureSequence.usd +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/trunk/pdf-over/pdf-signator/pom.xml b/trunk/pdf-over/pdf-signator/pom.xml deleted file mode 100644 index f66bc3c9..00000000 --- a/trunk/pdf-over/pdf-signator/pom.xml +++ /dev/null @@ -1,10 +0,0 @@ - - 4.0.0 - - pdf-over - at.a-sit - 4.0-SNAPSHOT - .. - - pdf-signator - \ No newline at end of file diff --git a/trunk/pdf-over/pdf-signer-interface/pom.xml b/trunk/pdf-over/pdf-signer-interface/pom.xml index 6b70ebb1..47c84098 100644 --- a/trunk/pdf-over/pdf-signer-interface/pom.xml +++ b/trunk/pdf-over/pdf-signer-interface/pom.xml @@ -8,7 +8,6 @@ pdf-signer-interface PDFSignator Interface - 0.1-SNAPSHOT 2012 http://www.buergerkarte.at/ \ No newline at end of file diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/CollimatingMark.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/CollimatingMark.java index ad956fa7..cfca74fa 100644 --- a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/CollimatingMark.java +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/CollimatingMark.java @@ -1,5 +1,6 @@ package at.asit.pdfover.pdfsigner; -public class CollimatingMark { - +public interface CollimatingMark { + + public String GetFileName(); } diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignator.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignator.java new file mode 100644 index 00000000..9fb14b4a --- /dev/null +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignator.java @@ -0,0 +1,68 @@ +package at.asit.pdfover.pdfsigner; + +import java.util.HashMap; +import java.util.Map; + +/** + * PDF Signator Interface + * @author afitzek + */ +public class PDFSignator { + + protected static Map _factory; + + // Let Factory choose if instance can be cached or not + //protected static Map _signer; + + static { + //_signer = new HashMap(); + _factory = new HashMap(); + + + try { + @SuppressWarnings("rawtypes") + Class pdfAsClass = Class.forName("at.asit.pdfover.pdfsigner.pdfas.PDFASSignerFactory"); + PDFSignerFactory factory = (PDFSignerFactory)pdfAsClass.newInstance(); + RegisterPDFSigner(factory.GetPDFSignerType(), factory); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + public static void RegisterPDFSigner(PDFSigner signer, PDFSignerFactory factory) { + _factory.put(signer, factory); + } + + protected static PDFSignerInterface GetSigner(PDFSigner signer) throws PDFSignatureException { + /*if (_signer.containsKey(signer)) { + return _signer.get(signer); + }*/ + + if(_factory.containsKey(signer)) { + //_signer.put(signer, _factory.get(signer).CreatePDFSigner()); + return _factory.get(signer).CreatePDFSigner(); + } else { + throw new PDFSignatureException("Unknown PDF Library: " + signer.toString()); + } + + //return _signer.get(signer); + } + + /** + * Gets a PDF Signer according to the chosen pdf signer library + * @param signer + * @return + * @throws PDFSignatureException + */ + public static PDFSignerInterface GetPDFSigner(PDFSigner signer) throws PDFSignatureException { + return GetSigner(signer); + } +} diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSigner.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSigner.java new file mode 100644 index 00000000..332c111b --- /dev/null +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSigner.java @@ -0,0 +1,20 @@ +/** + * + */ +package at.asit.pdfover.pdfsigner; + +/** + * Available PDF Signer libraries + * @author afitzek + */ +public enum PDFSigner { + /** + * @uml.property name="pDFAS" + * @uml.associationEnd + */ + PDFAS { + public String toString() { + return "PDFAS"; + } + } +} diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignerFactory.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignerFactory.java new file mode 100644 index 00000000..348c649a --- /dev/null +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/PDFSignerFactory.java @@ -0,0 +1,6 @@ +package at.asit.pdfover.pdfsigner; + +public abstract class PDFSignerFactory { + public abstract PDFSignerInterface CreatePDFSigner(); + public abstract PDFSigner GetPDFSignerType(); +} diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignResultImpl.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignResultImpl.java index 433ad093..72a08d1f 100644 --- a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignResultImpl.java +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignResultImpl.java @@ -7,7 +7,7 @@ public class SignResultImpl implements SignResult { private SignaturePosition position; private DocumentSource source; private X509Certificate certificate; - + @Override public SignaturePosition GetSignaturePosition() { return position; diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignatureParameter.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignatureParameter.java index 422b2c75..5876f1ef 100644 --- a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignatureParameter.java +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SignatureParameter.java @@ -1,5 +1,7 @@ package at.asit.pdfover.pdfsigner; +import java.util.HashMap; + /** * The Signature Parameter * @author afitzek @@ -102,5 +104,23 @@ public abstract class SignatureParameter { this.collimark = value; } + protected HashMap _properties = new HashMap(); + + /** + * Sets generic properties + * @param key + * @param value + */ + public void SetProperty(String key, String value) { + this._properties.put(key, value); + } + /** + * Gets generic properties + * @param key + * @return + */ + public String GetProperty(String key) { + return this._properties.get(key); + } } diff --git a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SigningState.java b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SigningState.java index ac0c736a..d1920135 100644 --- a/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SigningState.java +++ b/trunk/pdf-over/pdf-signer-interface/src/main/java/at/asit/pdfover/pdfsigner/SigningState.java @@ -10,11 +10,11 @@ public interface SigningState { * Gets the Security Layer Request to create the signature * @return The SL Signature Request */ - public SLRequest GetSLSignatureRequest(); + public abstract SLRequest GetSLSignatureRequest(); /** * Sets the Security Layer Request to create the signature * @param value The SL Signature Request */ - public void SetSLSignatureResponse(SLResponse value); + public abstract void SetSLSignatureResponse(SLResponse value); } diff --git a/trunk/pdf-over/pdf-signer-interface/src/model/PDFSignerInterface.ucd b/trunk/pdf-over/pdf-signer-interface/src/model/PDFSignerInterface.ucd index 450dd84c..b0c3edf6 100644 --- a/trunk/pdf-over/pdf-signer-interface/src/model/PDFSignerInterface.ucd +++ b/trunk/pdf-over/pdf-signer-interface/src/model/PDFSignerInterface.ucd @@ -1,12 +1,22 @@ - - + + + + + + + + + + + + @@ -17,23 +27,46 @@ + + + + + + + + + + + + + + + - + + + + + + - - + + + + + - + @@ -41,9 +74,19 @@ + + + + + + + + + + - + @@ -55,41 +98,45 @@ - + - + - - - - + + + + + + - - + + + + - - - + + + - - + + - + - + @@ -99,31 +146,57 @@ + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - - - + + + - + diff --git a/trunk/pdf-over/pdf-signer-pdf-as/pom.xml b/trunk/pdf-over/pdf-signer-pdf-as/pom.xml index e71691f2..eea1568a 100644 --- a/trunk/pdf-over/pdf-signer-pdf-as/pom.xml +++ b/trunk/pdf-over/pdf-signer-pdf-as/pom.xml @@ -12,7 +12,7 @@ at.a-sit pdf-signer-interface - 0.1-SNAPSHOT + 4.0-SNAPSHOT knowcenter diff --git a/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSigner.java b/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSigner.java index f94f3fdf..0cbaef1b 100644 --- a/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSigner.java +++ b/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSigner.java @@ -18,15 +18,15 @@ import at.gv.egiz.pdfas.api.internal.LocalBKUParams; import at.gv.egiz.pdfas.api.internal.PdfAsInternal; /** - * PDF AS Signer Implemtation + * PDF AS Signer Implementation * * @author afitzek */ public class PDFASSigner implements PDFSignerInterface { - protected static final String PROFILE_ID = ""; + protected static final String PROFILE_ID = "SIGNATURBLOCK_DE"; - protected static final String URL_TEMPLATE = ""; + protected static final String URL_TEMPLATE = "http://pdfover.4.gv.at/template"; @Override public SigningState Prepare(SignatureParameter parameter) @@ -53,15 +53,12 @@ public class PDFASSigner implements PDFSignerInterface { params.setSignatureProfileId(PROFILE_ID); if(parameter.GetCollimatingMark() != null) { - // TODO: Define CollimatingMark and use - params.setProfileOverrideValue("SIG_LABEL", "./images/signatur-logo_en.png"); + params.setProfileOverrideValue("SIG_LABEL", parameter.GetCollimatingMark().GetFileName()); } - params.setDocument(sign_para.GetPDFASDataSource()); state.setSignParameters(params); - PdfAsInternal pdfasInternal = PDFASHelper.GetPdfAsInternal(); @@ -114,7 +111,6 @@ public class PDFASSigner implements PDFSignerInterface { LocalBKUParams bkuParams = new LocalBKUParams(null, null, null); // Perform signature - // TODO: NEED TO check GetSLSignatureResponse() Interface to retrieve SL Response ... at.gv.egiz.pdfas.api.sign.SignResult signResult = pdfasInternal .finishLocalSign(pdfas, params, sdi, bkuParams, false, sstate.GetSLSignatureResponse().GetSLRespone()); diff --git a/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSignerFactory.java b/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSignerFactory.java new file mode 100644 index 00000000..2545578b --- /dev/null +++ b/trunk/pdf-over/pdf-signer-pdf-as/src/main/java/at/asit/pdfover/pdfsigner/pdfas/PDFASSignerFactory.java @@ -0,0 +1,19 @@ +package at.asit.pdfover.pdfsigner.pdfas; + +import at.asit.pdfover.pdfsigner.PDFSigner; +import at.asit.pdfover.pdfsigner.PDFSignerFactory; +import at.asit.pdfover.pdfsigner.PDFSignerInterface; + +public class PDFASSignerFactory extends PDFSignerFactory { + + @Override + public PDFSignerInterface CreatePDFSigner() { + return new PDFASSigner(); + } + + @Override + public PDFSigner GetPDFSignerType() { + return PDFSigner.PDFAS; + } + +} diff --git a/trunk/pdf-over/pom.xml b/trunk/pdf-over/pom.xml index 13547627..55c7a7fc 100644 --- a/trunk/pdf-over/pom.xml +++ b/trunk/pdf-over/pom.xml @@ -68,7 +68,7 @@ pdf-signer-interface pdf-signer-pdf-as - pdf-signator-interface - pdf-signator + + -- cgit v1.2.3