aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java
new file mode 100644
index 0000000..705eff6
--- /dev/null
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java
@@ -0,0 +1,110 @@
+package at.gv.egovernment.moa.spss.server.xmlbind;
+
+import java.util.Iterator;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import at.gv.egiz.pdfas.lib.api.verify.VerifyResult;
+import at.gv.egovernment.moa.spss.MOAApplicationException;
+import at.gv.egovernment.moa.spss.MOAException;
+import at.gv.egovernment.moa.spss.MOASystemException;
+import at.gv.egovernment.moa.spss.api.xmlbind.ResponseBuilderUtils;
+import at.gv.egovernment.moa.spss.server.pdfas.ExtendedVerifyResult;
+import at.gv.egovernment.moa.util.Constants;
+
+public class VerifyPDFResponseBuilder {
+ private static final String MOA_NS_URI = Constants.MOA_NS_URI;
+
+ //private static final Logger logger = LoggerFactory.getLogger(VerifyPDFResponseBuilder.class);
+
+ /** The XML document containing the response element. */
+ private Document responseDoc;
+ /** The response <code>CreateCMSSignatureResponse</code> DOM element. */
+ private Element responseElem;
+
+ /**
+ * Create a new <code>CreateCMSSignatureResponseBuilder</code>:
+ *
+ * @throws MOASystemException
+ * An error occurred setting up the resulting XML document.
+ */
+ public VerifyPDFResponseBuilder() throws MOASystemException {
+ responseDoc = ResponseBuilderUtils.createResponse("VerifyPDFSignatureResponse");
+ responseElem = responseDoc.getDocumentElement();
+ }
+
+ /**
+ * Build a document containing a <code>CreateCMSSignatureResponse</code> DOM
+ * element being the XML representation of the given
+ * <code>CreateCMSSignatureResponse</code> API object.
+ *
+ * @param response
+ * The <code>CreateCMSSignatureResponse</code> to convert to XML.
+ * @return A document containing the <code>CreateCMSSignatureResponse</code>
+ * DOM element.
+ */
+ public Document build(VerifyPDFResponse response) throws MOAException {
+ if(response.getVerificationResults() == null) {
+ throw new MOAApplicationException("No verification results available", null);
+ }
+ Iterator<VerifyResult> iter = response.getVerificationResults().iterator();
+
+ while (iter.hasNext()) {
+ VerifyResult verifyResult = iter.next();
+ addVerifyResult(verifyResult);
+ }
+
+ return responseDoc;
+ }
+
+ private void addVerifyResult(VerifyResult verifyResult) throws MOAApplicationException {
+ Element pdfSignature = responseDoc.createElementNS(MOA_NS_URI, "SignatureResult");
+
+
+ String qcSource = null;
+ String publicAuthorityID = null;
+ String sscdSource = null;
+ boolean isPublicAuthority = false;
+ boolean isSSCD = false;
+ String issureCountryCode = null;
+
+ if(verifyResult instanceof ExtendedVerifyResult) {
+ ExtendedVerifyResult extendedVerifyResult = (ExtendedVerifyResult)verifyResult;
+
+ qcSource = extendedVerifyResult.getQcSource();
+ publicAuthorityID = extendedVerifyResult.getPublicAuthorityID();
+ sscdSource = extendedVerifyResult.getQcSource();
+ issureCountryCode = extendedVerifyResult.getIssureCountryCode();
+
+ isPublicAuthority = extendedVerifyResult.isPublicAuthority();
+ isSSCD = extendedVerifyResult.isSSCD();
+ }
+
+ ResponseBuilderUtils.addSignerInfo(responseDoc, pdfSignature,
+ verifyResult.getSignerCertificate(),
+ verifyResult.isQualifiedCertificate(),
+ qcSource,
+ isPublicAuthority,
+ publicAuthorityID,
+ isSSCD,
+ sscdSource,
+ issureCountryCode);
+
+ ResponseBuilderUtils.addCodeInfoElement(
+ responseDoc,
+ pdfSignature,
+ "SignatureCheck",
+ verifyResult.getValueCheckCode().getCode(),
+ (String)null);
+
+ ResponseBuilderUtils.addCodeInfoElement(
+ responseDoc,
+ pdfSignature,
+ "CertificateCheck",
+ verifyResult.getCertificateCheck().getCode(),
+ (String)null);
+
+ responseElem.appendChild(pdfSignature);
+ }
+}