aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java
index 44dc2c2..dcc92f9 100644
--- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/XMLVerifySignatureBindingImpl.java
@@ -11,16 +11,21 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import javax.security.auth.login.FailedLoginException;
+import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
+import javax.xml.transform.dom.DOMResult;
import org.apache.commons.io.IOUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import at.gv.egiz.moasig.MoaTransformsType;
+import at.gv.egiz.moasig.NamespaceDeclarationType;
import at.gv.egiz.moasig.PublicAuthorityType;
import at.gv.egiz.moasig.QualifiedCertificate;
import at.gv.egiz.moasig.SecureSignatureCreationDevice;
@@ -28,6 +33,7 @@ import at.gv.egiz.moasig.TransformParameterType;
import at.gv.egiz.moasig.TransformParameterType.Hash;
import at.gv.egiz.moasig.VerifyXMLSignatureResponseType;
import at.gv.egiz.moasig.XMLDataObjectAssociationType;
+import at.gv.egiz.moasig.XMLSignatureLocationType;
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.Content;
@@ -46,7 +52,7 @@ import at.gv.egovernment.moa.spss.api.xmlverify.VerifyTransformsInfoProfile;
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.webservice.XMLVerifySignatureBinding;
-import at.gv.egovernment.moa.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.DOMUtils;
import iaik.utils.RFC2253NameParser;
import iaik.utils.RFC2253NameParserException;
@@ -264,11 +270,26 @@ public class XMLVerifySignatureBindingImpl implements XMLVerifySignatureBinding
throws MOAApplicationException {
Content verifySignatureEnvironment = transformerUtils
.buildContent(verifySignatureInfo.getVerifySignatureEnvironment());
+
+ XMLSignatureLocationType xmlSignatureLocationType = verifySignatureInfo.getVerifySignatureLocation();
- String xPathExpression = verifySignatureInfo.getVerifySignatureLocation();
-
+ String xPathExpression = xmlSignatureLocationType.getXPathExpression();
+
+ Iterator<NamespaceDeclarationType> namespaceDelcarationIterator = xmlSignatureLocationType.getNamespaceDeclaration().iterator();
+
+ Map namespaceMap = new HashMap();
+
+ while(namespaceDelcarationIterator.hasNext()) {
+ NamespaceDeclarationType namespaceDelcaration = namespaceDelcarationIterator.next();
+
+ String prefix = namespaceDelcaration.getPrefix();
+ String namespace = namespaceDelcaration.getValue();
+
+ namespaceMap.put(prefix, namespace);
+ }
+
VerifySignatureLocation verifySignatureLocation = factory.createVerifySignatureLocation(xPathExpression,
- new HashMap());
+ namespaceMap);
return factory.createVerifySignatureInfo(verifySignatureEnvironment, verifySignatureLocation);
}