aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java
new file mode 100644
index 0000000..dfe3ce5
--- /dev/null
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/PDFCreateSignatureBindingImpl.java
@@ -0,0 +1,86 @@
+package at.gv.egovernment.moa.spss.server.webservice.binding;
+
+import java.math.BigInteger;
+import java.util.Iterator;
+
+import at.gv.egiz.moasig.CreatePDFSignatureRequest;
+import at.gv.egiz.moasig.CreatePDFSignatureResponseType;
+import at.gv.egiz.moasig.ErrorResponseType;
+import at.gv.egovernment.moa.spss.MOAApplicationException;
+import at.gv.egovernment.moa.spss.api.SPSSFactory;
+import at.gv.egovernment.moa.spss.server.webservice.PDFCreateSignatureBinding;
+import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRequest;
+import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRespone;
+import at.gv.egovernment.moa.spss.server.xmlbind.PDFSignatureInfo;
+import at.gv.egovernment.moa.spss.server.xmlbind.SignedPDFInfo;
+
+public class PDFCreateSignatureBindingImpl implements PDFCreateSignatureBinding {
+
+ public PDFCreateSignatureBindingImpl() {
+ }
+
+ @Override
+ public CreatePDFRequest buildPDFRequest(CreatePDFSignatureRequest createCMSSignatureRequest)
+ throws MOAApplicationException {
+ String keyIdentifier = createCMSSignatureRequest.getKeyIdentifier();
+ CreatePDFRequest createPDFRequest = new CreatePDFRequest(keyIdentifier);
+ Iterator<at.gv.egiz.moasig.CreatePDFSignatureRequest.SingleSignatureInfo> iter =
+ createCMSSignatureRequest.getSingleSignatureInfo().iterator();
+
+ while(iter.hasNext()) {
+ at.gv.egiz.moasig.CreatePDFSignatureRequest.SingleSignatureInfo singleSignatureInfo = iter.next();
+ createPDFRequest.getSignatureInfoList().add(parseSingleSignatureInfo(singleSignatureInfo));
+ }
+
+ return createPDFRequest;
+ }
+
+ @Override
+ public CreatePDFSignatureResponseType buildPDFResponse(CreatePDFRespone response) throws MOAApplicationException {
+
+ CreatePDFSignatureResponseType createPDFSignatureResponseType = new CreatePDFSignatureResponseType();
+
+ Iterator<SignedPDFInfo> iter = response.getSignatureInfoList().iterator();
+
+ while(iter.hasNext()) {
+ SignedPDFInfo signedPDFInfo = iter.next();
+
+ createPDFSignatureResponseType.getPDFSignature().add(buildPDFSignedResponse(signedPDFInfo));
+ }
+ return createPDFSignatureResponseType;
+ }
+
+ public PDFSignatureInfo parseSingleSignatureInfo(
+ at.gv.egiz.moasig.CreatePDFSignatureRequest.SingleSignatureInfo singleSignatureInfo)
+ throws MOAApplicationException {
+ String signatureProfile = singleSignatureInfo.getSignatureProfile();
+ String signaturePosition = singleSignatureInfo.getSignaturePosition();
+ String signatureID = singleSignatureInfo.getSignatureID();
+ byte[] inputPDF = singleSignatureInfo.getPDFDocument();
+ PDFSignatureInfo PDFSignatureInfo = new PDFSignatureInfo(inputPDF,
+ signatureProfile, signaturePosition, signatureID);
+
+ return PDFSignatureInfo;
+ }
+
+ public at.gv.egiz.moasig.PDFSignedRepsonse buildPDFSignedResponse(SignedPDFInfo signedPDFInfo) {
+ at.gv.egiz.moasig.PDFSignedRepsonse response = new at.gv.egiz.moasig.PDFSignedRepsonse();
+
+ response.setSignatureID(signedPDFInfo.getSignatureID());
+
+ switch (signedPDFInfo.getResponseType()) {
+ case SignedPDFInfo.SUCCESS_SIGNATURE:
+ response.setPDFSignature(signedPDFInfo.getPdfDocument());
+ break;
+
+ default:
+ ErrorResponseType errorResponseType = new ErrorResponseType();
+ errorResponseType.setErrorCode(BigInteger.valueOf(signedPDFInfo.getErrorCode()));
+ errorResponseType.setInfo(signedPDFInfo.getErrorInfo());
+ response.setErrorResponse(errorResponseType);
+ break;
+ }
+
+ return response;
+ }
+}