aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
index 1b15a197f..b335a6e23 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
@@ -1,8 +1,7 @@
package at.gv.egovernment.moa.spss.server.service;
-import org.w3c.dom.Element;
-
import org.apache.axis.AxisFault;
+import org.w3c.dom.Element;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.spss.MOAException;
@@ -17,6 +16,8 @@ import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse;
import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureVerificationInvoker;
import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
+import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
+import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
import at.gv.egovernment.moa.util.StreamUtils;
/**
@@ -52,8 +53,10 @@ public class SignatureVerificationService {
VerifyCMSSignatureRequest requestObj;
VerifyCMSSignatureResponse 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]);
+ reparsedReq = ServiceUtils.reparseRequest(context.getRequest());
// convert to API objects
requestObj = requestParser.parse(reparsedReq);
@@ -64,6 +67,9 @@ public class SignatureVerificationService {
// map back to XML
response[0] = responseBuilder.build(responseObj).getDocumentElement();
+ // save response in transaction
+ context.setResponse(response[0]);
+
} catch (MOAException e) {
AxisFault fault = AxisFault.makeFault(e);
fault.setFaultDetail(new Element[] { e.toErrorResponse()});
@@ -107,8 +113,10 @@ public class SignatureVerificationService {
VerifyXMLSignatureRequest requestObj;
VerifyXMLSignatureResponse 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]);
+ reparsedReq = ServiceUtils.reparseRequest(context.getRequest());
// convert to API objects
requestObj = requestParser.parse(reparsedReq);
@@ -118,6 +126,9 @@ public class SignatureVerificationService {
// map back to XML
response[0] = responseBuilder.build(responseObj).getDocumentElement();
+
+ // save response in transaction
+ context.setResponse(response[0]);
} catch (MOAException e) {
AxisFault fault = AxisFault.makeFault(e);