diff options
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.java | 29 |
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); } |