aboutsummaryrefslogtreecommitdiff
path: root/cxfImplementations/SignatureCreationServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'cxfImplementations/SignatureCreationServiceImpl.java')
-rw-r--r--cxfImplementations/SignatureCreationServiceImpl.java187
1 files changed, 187 insertions, 0 deletions
diff --git a/cxfImplementations/SignatureCreationServiceImpl.java b/cxfImplementations/SignatureCreationServiceImpl.java
new file mode 100644
index 0000000..83e9055
--- /dev/null
+++ b/cxfImplementations/SignatureCreationServiceImpl.java
@@ -0,0 +1,187 @@
+package at.gv.egovernment.moa.spss.server.webservice.impl;
+
+import java.util.Collections;
+
+import javax.annotation.Resource;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.moasig.CreateCMSSignatureRequest;
+import at.gv.egiz.moasig.CreateCMSSignatureResponseType;
+import at.gv.egiz.moasig.CreatePDFSignatureRequest;
+import at.gv.egiz.moasig.CreatePDFSignatureResponseType;
+import at.gv.egiz.moasig.CreateXMLSignatureRequest;
+import at.gv.egiz.moasig.CreateXMLSignatureResponseType;
+import at.gv.egovernment.moa.spss.MOAException;
+import at.gv.egovernment.moa.spss.MOASystemException;
+import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureCreationInvoker;
+import at.gv.egovernment.moa.spss.server.invoke.PDFASInvoker;
+import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureCreationInvoker;
+import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
+import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
+import at.gv.egovernment.moa.spss.server.webservice.CMSCreateSignatureBinding;
+import at.gv.egovernment.moa.spss.server.webservice.PDFCreateSignatureBinding;
+import at.gv.egovernment.moa.spss.server.webservice.SignatureCreationService;
+import at.gv.egovernment.moa.spss.server.webservice.XMLCreateSignatureBinding;
+import at.gv.egovernment.moa.spss.server.webservice.binding.CMSCreateSignatureBindingImpl;
+import at.gv.egovernment.moa.spss.server.webservice.binding.PDFCreateSignatureBindingImpl;
+import at.gv.egovernment.moa.spss.server.webservice.binding.XMLCreateSignatureBindingImpl;
+import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRequest;
+import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRespone;
+import at.gv.egovernment.moa.util.StreamUtils;
+
+@WebService(endpointInterface = "at.gv.egovernment.moa.spss.server.webservice.SignatureCreationService", portName = "SignatureCreationService", serviceName = "SignatureCreationService")
+public class SignatureCreationServiceImpl implements SignatureCreationService {
+
+ private static final Logger logger = LoggerFactory.getLogger(SignatureCreationServiceImpl.class);
+
+ @Resource
+ private WebServiceContext context;
+
+ private XMLCreateSignatureBinding xmlCreateSignatureBinding;
+ private CMSCreateSignatureBinding cmsCreateSignatureBinding;
+ private PDFCreateSignatureBinding pdfCreateSignatureBinding;
+
+ public SignatureCreationServiceImpl() {
+ this.xmlCreateSignatureBinding = new XMLCreateSignatureBindingImpl();
+ this.cmsCreateSignatureBinding = new CMSCreateSignatureBindingImpl();
+ this.pdfCreateSignatureBinding = new PDFCreateSignatureBindingImpl();
+ }
+
+ @Override
+ @WebResult(name = "CreateXMLSignatureResponseType", targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20151109#")
+ public CreateXMLSignatureResponseType createXMLSignature(CreateXMLSignatureRequest createXMLSignatureRequest)
+ throws Exception {
+ logger.info("createXMLSignature start");
+ try {
+ logger.info("WebServiceContext: {}", context);
+ ContextSetupAspect.setupContext(context.getMessageContext(), "createXMLSignature");
+
+ XMLSignatureCreationInvoker invoker = XMLSignatureCreationInvoker.getInstance();
+
+ at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest requestObj;
+ at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse responseObj;
+
+ logger.trace(">>> preparsing Request");
+ requestObj = this.xmlCreateSignatureBinding.buildXMLRequest(createXMLSignatureRequest);
+ logger.trace("<<< preparsed Request");
+
+ logger.trace(">>> creating Signature");
+ // invoke the core logic
+ responseObj = invoker.createXMLSignature(requestObj, Collections.EMPTY_SET);
+ logger.trace("<<< created Signature");
+
+ logger.trace(">>> building Response");
+ // map back to XML
+ CreateXMLSignatureResponseType response = this.xmlCreateSignatureBinding.buildXMLResponse(responseObj);
+ logger.trace("<<< built Response");
+
+ return response;
+ } catch (MOAException e) {
+ logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ logger.error("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:", e);
+ throw new Exception(e.getMessage());
+ } catch (Throwable t) {
+ MOASystemException e = new MOASystemException("2900", null, t);
+ logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ logger.error("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:", e);
+ throw new Exception(e.getMessage());
+ } finally {
+ ContextSetupAspect.cleanContext();
+ }
+ }
+
+ @Override
+ @WebResult(name = "CreateCMSSignatureResponseType", targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20151109#")
+ public CreateCMSSignatureResponseType createCMSSignature(CreateCMSSignatureRequest createCMSSignatureRequest)
+ throws Exception {
+ logger.info("createCMSSignature start");
+ try {
+ logger.info("WebServiceContext: {}", context);
+ ContextSetupAspect.setupContext(context.getMessageContext(), "createCMSSignature");
+
+ CMSSignatureCreationInvoker invoker = CMSSignatureCreationInvoker.getInstance();
+
+ at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureRequest requestObj;
+ at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponse responseObj;
+
+ logger.trace(">>> preparsing Request");
+ requestObj = this.cmsCreateSignatureBinding.buildCMSRequest(createCMSSignatureRequest);
+ logger.trace("<<< preparsed Request");
+
+ logger.trace(">>> creating Signature");
+ // invoke the core logic
+ responseObj = invoker.createCMSSignature(requestObj, Collections.EMPTY_SET);
+ logger.trace("<<< created Signature");
+
+ logger.trace(">>> building Response");
+ // map back to XML
+ CreateCMSSignatureResponseType response = this.cmsCreateSignatureBinding.buildCMSResponse(responseObj);
+ logger.trace("<<< built Response");
+
+ return response;
+
+ } catch (MOAException e) {
+ logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ logger.error("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:", e);
+ throw new Exception(e.getMessage());
+ } catch (Throwable t) {
+ MOASystemException e = new MOASystemException("2900", null, t);
+ logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ logger.error("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:", e);
+ throw new Exception(e.getMessage());
+ } finally {
+ ContextSetupAspect.cleanContext();
+ }
+ }
+
+ //@Override
+ //@WebResult(name = "CreatePDFSignatureResponseType", targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20151109#")
+ public CreatePDFSignatureResponseType createPDFSignature(CreatePDFSignatureRequest createPDFSignatureRequest)
+ throws Exception {
+ logger.info("createPDFSignature start");
+ try {
+ logger.info("WebServiceContext: {}", context);
+ ContextSetupAspect.setupContext(context.getMessageContext(), "createPDFSignature");
+
+ CreatePDFRequest requestObj;
+ CreatePDFRespone responseObj;
+
+ TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
+
+ // convert to API objects
+ logger.trace(">>> preparsing Request");
+ requestObj = this.pdfCreateSignatureBinding.buildPDFRequest(createPDFSignatureRequest);
+ logger.trace("<<< preparsed Request");
+
+ logger.trace(">>> creating Signature");
+ // invoke the core logic
+ responseObj = null;//PDFASInvoker.getInstance().createPDFSignature(requestObj, context.getTransactionID());
+ logger.trace("<<< created Signature");
+
+ logger.trace(">>> building Response");
+ // map back to XML
+ CreatePDFSignatureResponseType response = this.pdfCreateSignatureBinding.buildPDFResponse(responseObj);
+ logger.trace("<<< built Response");
+
+ return response;
+ } catch (Throwable t) {
+ MOASystemException e = new MOASystemException("2900", null, t);
+ logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ logger.error("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:", e);
+ throw new Exception(e.getMessage());
+ } finally {
+ ContextSetupAspect.cleanContext();
+ }
+ }
+
+}