aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java435
1 files changed, 217 insertions, 218 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
index 839d8ba..4030883 100644
--- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moa.spss.server.service;
import java.util.Collections;
@@ -43,7 +42,6 @@ import at.gv.egovernment.moa.spss.api.xmlbind.CreateXMLSignatureResponseBuilder;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
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;
@@ -57,260 +55,261 @@ import at.gv.egovernment.moaspss.util.StreamUtils;
/**
* The service endpoint for the <code>SignatureCreation</code> web service.
- *
+ *
* @author Patrick Peck
* @version $Id$
*/
public class SignatureCreationService {
-
- /**
- * Handle a <code>CreatePDFSignatureRequest</code>.
- *
- * @param request The <code>CreatePDFSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>CreatePDFSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
- * @throws AxisFault An error occurred during handling of the message.
- */
- public Element[] CreatePDFSignatureRequest(Element[] request)
- throws AxisFault {
- Logger.trace("---- Entering SignatureCreationService");
- //PDFSignatureCreationInvoker invoker =
- // PDFSignatureCreationInvoker.getInstance();
- Element[] response = new Element[1];
-
- // check that we have a CreateXMLSignatureRequest; if not, create an
- // AxisFault, just like the org.apache.axis.providers.java.MsgProvider
- if (!Constants.MOA_SPSS_CREATE_PDF_REQUEST.equals(request[0].getLocalName()) ||
- !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI()))
- {
- QName qname =
- new QName(request[0].getNamespaceURI(), request[0].getLocalName());
- throw new AxisFault(
- Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not make it into the error repsonse
- }
-
- // handle the request
- try {
-
- // create a parser and builder for binding API objects to/from XML
- CreatePDFSignatureRequestParser requestParser =
- new CreatePDFSignatureRequestParser();
- CreatePDFSignatureResponseBuilder responseBuilder =
- new CreatePDFSignatureResponseBuilder();
- Element reparsedReq;
- CreatePDFRequest requestObj;
- CreatePDFRespone responseObj = null;
-
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
-
- // validate the request
- reparsedReq = ServiceUtils.reparseRequest(request[0]);//context.getRequest());
-
- // convert to API objects
- Logger.trace(">>> preparsing Request");
- requestObj = requestParser.parse(reparsedReq);
- Logger.trace("<<< preparsed Request");
-
- Logger.trace(">>> creating Signature");
- // invoke the core logic
- //responseObj = PDFASInvoker.getInstance().createPDFSignature(requestObj, context.getTransactionID());
-
- Logger.trace("<<< created Signature");
-
- Logger.trace(">>> building Response");
- // map back to XML
- response[0] = responseBuilder.build(responseObj).getDocumentElement();
- Logger.trace("<<< built Response");
-
- // save response in transaction
- context.setResponse(response[0]);
- Logger.trace("---- Leaving SignatureCreationService");
-
- //TODO: remove if PDF signatures are supported
- throw new MOASystemException("Create PAdES signatures is currently NOT supported by MOA-SIG", null);
-
- //return response;
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- }
-
-
- }
-
- /**
- * Handle a <code>CreateXMLSignatureRequest</code>.
- *
- * @param request The <code>CreateXMLSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>CreateXMLSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
- * @throws AxisFault An error occurred during handling of the message.
- */
- public Element[] CreateCMSSignatureRequest(Element[] request)
- throws AxisFault {
- Logger.trace("---- Entering SignatureCreationService");
- CMSSignatureCreationInvoker invoker =
- CMSSignatureCreationInvoker.getInstance();
- Element[] response = new Element[1];
-
- // check that we have a CreateXMLSignatureRequest; if not, create an
- // AxisFault, just like the org.apache.axis.providers.java.MsgProvider
- if (!Constants.MOA_SPSS_CREATE_CMS_REQUEST.equals(request[0].getLocalName()) ||
- !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI()))
- {
- QName qname =
- new QName(request[0].getNamespaceURI(), request[0].getLocalName());
- throw new AxisFault(
- Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not make it into the error repsonse
- }
-
- // handle the request
- try {
-
- // create a parser and builder for binding API objects to/from XML
- CreateCMSSignatureRequestParser requestParser =
- new CreateCMSSignatureRequestParser();
- CreateCMSSignatureResponseBuilder responseBuilder =
- new CreateCMSSignatureResponseBuilder();
- Element reparsedReq;
- CreateCMSSignatureRequest requestObj;
- CreateCMSSignatureResponse responseObj;
-
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
-
- // validate the request
- reparsedReq = ServiceUtils.reparseRequest(request[0]);//context.getRequest());
-
- // convert to API objects
- Logger.trace(">>> preparsing Request");
- requestObj = requestParser.parse(reparsedReq);
- 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
- response[0] = responseBuilder.build(responseObj).getDocumentElement();
- Logger.trace("<<< built Response");
-
- // save response in transaction
- context.setResponse(response[0]);
- Logger.trace("---- Leaving SignatureCreationService");
-
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- }
-
- return response;
- }
+
+ /**
+ * Handle a <code>CreatePDFSignatureRequest</code>.
+ *
+ * @param request The <code>CreatePDFSignatureRequest</code> to work on
+ * (contained in the 0th element of the array).
+ * @return A <code>CreatePDFSignatureResponse</code> as the only element of the
+ * <code>Element</code> array.
+ * @throws AxisFault An error occurred during handling of the message.
+ */
+ public Element[] CreatePDFSignatureRequest(Element[] request)
+ throws AxisFault {
+ Logger.trace("---- Entering SignatureCreationService");
+ // PDFSignatureCreationInvoker invoker =
+ // PDFSignatureCreationInvoker.getInstance();
+ final Element[] response = new Element[1];
+
+ // check that we have a CreateXMLSignatureRequest; if not, create an
+ // AxisFault, just like the org.apache.axis.providers.java.MsgProvider
+ if (!Constants.MOA_SPSS_CREATE_PDF_REQUEST.equals(request[0].getLocalName()) ||
+ !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI())) {
+ final QName qname =
+ new QName(request[0].getNamespaceURI(), request[0].getLocalName());
+ throw new AxisFault(
+ Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not
+ // make it into the error repsonse
+ }
+
+ // handle the request
+ try {
+
+ // create a parser and builder for binding API objects to/from XML
+ final CreatePDFSignatureRequestParser requestParser =
+ new CreatePDFSignatureRequestParser();
+ final CreatePDFSignatureResponseBuilder responseBuilder =
+ new CreatePDFSignatureResponseBuilder();
+ Element reparsedReq;
+ CreatePDFRequest requestObj;
+ final CreatePDFRespone responseObj = null;
+
+ // since Axis (1.1 ff) has problem with namespaces we take the raw request
+ // stored by the Axishandler.
+ final TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
+
+ // validate the request
+ reparsedReq = ServiceUtils.reparseRequest(request[0]);// context.getRequest());
+
+ // convert to API objects
+ Logger.trace(">>> preparsing Request");
+ requestObj = requestParser.parse(reparsedReq);
+ Logger.trace("<<< preparsed Request");
+
+ Logger.trace(">>> creating Signature");
+ // invoke the core logic
+ // responseObj = PDFASInvoker.getInstance().createPDFSignature(requestObj,
+ // context.getTransactionID());
+
+ Logger.trace("<<< created Signature");
+
+ Logger.trace(">>> building Response");
+ // map back to XML
+ response[0] = responseBuilder.build(responseObj).getDocumentElement();
+ Logger.trace("<<< built Response");
+
+ // save response in transaction
+ context.setResponse(response[0]);
+ Logger.trace("---- Leaving SignatureCreationService");
+
+ // TODO: remove if PDF signatures are supported
+ throw new MOASystemException("Create PAdES signatures is currently NOT supported by MOA-SIG", null);
+
+ // return response;
+
+ } catch (final MOAException e) {
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ throw fault;
+ } catch (final Throwable t) {
+ final MOASystemException e = new MOASystemException("2900", null, t);
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ throw fault;
+ }
+
+ }
/**
* Handle a <code>CreateXMLSignatureRequest</code>.
*
* @param request The <code>CreateXMLSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>CreateXMLSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
+ * (contained in the 0th element of the array).
+ * @return A <code>CreateXMLSignatureResponse</code> as the only element of the
+ * <code>Element</code> array.
+ * @throws AxisFault An error occurred during handling of the message.
+ */
+ public Element[] CreateCMSSignatureRequest(Element[] request)
+ throws AxisFault {
+ Logger.trace("---- Entering SignatureCreationService");
+ final CMSSignatureCreationInvoker invoker =
+ CMSSignatureCreationInvoker.getInstance();
+ final Element[] response = new Element[1];
+
+ // check that we have a CreateXMLSignatureRequest; if not, create an
+ // AxisFault, just like the org.apache.axis.providers.java.MsgProvider
+ if (!Constants.MOA_SPSS_CREATE_CMS_REQUEST.equals(request[0].getLocalName()) ||
+ !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI())) {
+ final QName qname =
+ new QName(request[0].getNamespaceURI(), request[0].getLocalName());
+ throw new AxisFault(
+ Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not
+ // make it into the error repsonse
+ }
+
+ // handle the request
+ try {
+
+ // create a parser and builder for binding API objects to/from XML
+ final CreateCMSSignatureRequestParser requestParser =
+ new CreateCMSSignatureRequestParser();
+ final CreateCMSSignatureResponseBuilder responseBuilder =
+ new CreateCMSSignatureResponseBuilder();
+ Element reparsedReq;
+ CreateCMSSignatureRequest requestObj;
+ CreateCMSSignatureResponse responseObj;
+
+ // since Axis (1.1 ff) has problem with namespaces we take the raw request
+ // stored by the Axishandler.
+ final TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
+
+ // validate the request
+ reparsedReq = ServiceUtils.reparseRequest(request[0]);// context.getRequest());
+
+ // convert to API objects
+ Logger.trace(">>> preparsing Request");
+ requestObj = requestParser.parse(reparsedReq);
+ 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
+ response[0] = responseBuilder.build(responseObj).getDocumentElement();
+ Logger.trace("<<< built Response");
+
+ // save response in transaction
+ context.setResponse(response[0]);
+ Logger.trace("---- Leaving SignatureCreationService");
+
+ } catch (final MOAException e) {
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ throw fault;
+ } catch (final Throwable t) {
+ final MOASystemException e = new MOASystemException("2900", null, t);
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ throw fault;
+ }
+
+ return response;
+ }
+
+ /**
+ * Handle a <code>CreateXMLSignatureRequest</code>.
+ *
+ * @param request The <code>CreateXMLSignatureRequest</code> to work on
+ * (contained in the 0th element of the array).
+ * @return A <code>CreateXMLSignatureResponse</code> as the only element of the
+ * <code>Element</code> array.
* @throws AxisFault An error occurred during handling of the message.
*/
public Element[] CreateXMLSignatureRequest(Element[] request)
- throws AxisFault {
- Logger.trace("---- Entering SignatureCreationService");
- XMLSignatureCreationInvoker invoker =
- XMLSignatureCreationInvoker.getInstance();
- Element[] response = new Element[1];
+ throws AxisFault {
+ Logger.trace("---- Entering SignatureCreationService");
+ final XMLSignatureCreationInvoker invoker =
+ XMLSignatureCreationInvoker.getInstance();
+ final Element[] response = new Element[1];
// check that we have a CreateXMLSignatureRequest; if not, create an
// AxisFault, just like the org.apache.axis.providers.java.MsgProvider
if (!Constants.MOA_SPSS_CREATE_XML_REQUEST.equals(request[0].getLocalName()) ||
- !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI()))
- {
- QName qname =
- new QName(request[0].getNamespaceURI(), request[0].getLocalName());
+ !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI())) {
+ final QName qname =
+ new QName(request[0].getNamespaceURI(), request[0].getLocalName());
throw new AxisFault(
- Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not make it into the error repsonse
+ Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not
+ // make it into the error repsonse
}
// handle the request
try {
-
+
// create a parser and builder for binding API objects to/from XML
- CreateXMLSignatureRequestParser requestParser =
- new CreateXMLSignatureRequestParser();
- CreateXMLSignatureResponseBuilder responseBuilder =
- new CreateXMLSignatureResponseBuilder();
+ final CreateXMLSignatureRequestParser requestParser =
+ new CreateXMLSignatureRequestParser();
+ final CreateXMLSignatureResponseBuilder responseBuilder =
+ new CreateXMLSignatureResponseBuilder();
Element reparsedReq;
CreateXMLSignatureRequest requestObj;
CreateXMLSignatureResponse responseObj;
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
-
+ // since Axis (1.1 ff) has problem with namespaces we take the raw request
+ // stored by the Axishandler.
+ final TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
+
// validate the request
- reparsedReq = ServiceUtils.reparseRequest(request[0]);//context.getRequest());
+ reparsedReq = ServiceUtils.reparseRequest(request[0]);// context.getRequest());
// convert to API objects
- Logger.trace(">>> preparsing Request");
+ Logger.trace(">>> preparsing Request");
requestObj = requestParser.parse(reparsedReq);
- Logger.trace("<<< preparsed Request");
-
- Logger.trace(">>> creating Signature");
+ 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("<<< created Signature");
- Logger.trace(">>> building Response");
+ Logger.trace(">>> building Response");
// map back to XML
response[0] = responseBuilder.build(responseObj).getDocumentElement();
- Logger.trace("<<< built Response");
-
+ Logger.trace("<<< built Response");
+
// save response in transaction
context.setResponse(response[0]);
- Logger.trace("---- Leaving SignatureCreationService");
-
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ Logger.trace("---- Leaving SignatureCreationService");
+
+ } catch (final MOAException e) {
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
+ } catch (final Throwable t) {
+ final MOASystemException e = new MOASystemException("2900", null, t);
+ final AxisFault fault = AxisFault.makeFault(e);
+ fault.setFaultDetail(new Element[] { e.toErrorResponse() });
+ Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
+ + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
throw fault;
}