public static Element findQualifyingPropertiesElement(Element nsElement, XMLSignature xmlSignature, Element signatureElement) throws XAdESValidationException { String xadesSignedPropertiesUri = findReferenceUri(xmlSignature, "http://uri.etsi.org/01903#SignedProperties"); if (null == xadesSignedPropertiesUri) { LOG.error("no XAdES SignedProperties as part of signed XML data"); throw new XAdESValidationException("no XAdES SignedProperties"); } String xadesSignedPropertiesId = xadesSignedPropertiesUri.substring(1); Node xadesQualifyingPropertiesNode; try { xadesQualifyingPropertiesNode = XPathAPI.selectSingleNode( signatureElement, "ds:Object/xades:QualifyingProperties[xades:SignedProperties/@Id='" + xadesSignedPropertiesId + "']", nsElement); } catch (TransformerException e) { throw new XAdESValidationException(e); } return (Element) xadesQualifyingPropertiesNode; }
@SuppressWarnings("unchecked") public static IdentityType findIdentity(Element nsElement, XMLSignature xmlSignature, Element signatureElement) throws XAdESValidationException { try { String identityUri = XAdESUtils.findReferenceUri(xmlSignature, IdentitySignatureFacet.REFERENCE_TYPE); if (null != identityUri) { String identityId = identityUri.substring(1); Node identityNode = XPathAPI.selectSingleNode(signatureElement, "ds:Object[@Id = '" + identityId + "']/identity:Identity", nsElement); if (null != identityNode) { JAXBElement<IdentityType> identityElement = (JAXBElement<IdentityType>) identityUnmarshaller .unmarshal(identityNode); return identityElement.getValue(); } } return null; } catch (TransformerException e) { throw new XAdESValidationException(e); } catch (JAXBException e) { throw new XAdESValidationException(e); } }
@SuppressWarnings("unchecked") public static QualifyingPropertiesType getQualifyingProperties( Element nsElement, XMLSignature xmlSignature, Element signatureElement) throws XAdESValidationException { try { String xadesSignedPropertiesUri = findReferenceUri(xmlSignature, "http://uri.etsi.org/01903#SignedProperties"); if (null == xadesSignedPropertiesUri) { LOG.error("no XAdES SignedProperties as part of signed XML data"); throw new XAdESValidationException("no XAdES SignedProperties"); } String xadesSignedPropertiesId = xadesSignedPropertiesUri .substring(1); Node xadesQualifyingPropertiesNode = XPathAPI.selectSingleNode( signatureElement, "ds:Object/xades:QualifyingProperties[xades:SignedProperties/@Id='" + xadesSignedPropertiesId + "']", nsElement); JAXBElement<QualifyingPropertiesType> qualifyingPropertiesElement = (JAXBElement<QualifyingPropertiesType>) xadesUnmarshaller .unmarshal(xadesQualifyingPropertiesNode); return qualifyingPropertiesElement.getValue(); } catch (TransformerException e) { throw new XAdESValidationException(e); } catch (JAXBException e) { throw new XAdESValidationException(e); } }