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; }
.findQualifyingPropertiesElement(nsElement, xmlSignature, signatureElement); if (null == qualifyingPropertiesElement) { .unmarshall(qualifyingPropertiesElement, QualifyingPropertiesType.class); if (false == qualifyingProperties.getTarget().equals( XAdESUtils.checkSigningCertificate(signingCertificate, signedSignatureProperties); .findUnsignedSignaturePropertyElement( qualifyingPropertiesElement, "SignatureTimeStamp"); if (null == signatureTimeStampElement) { XAdESTimeStampType signatureTimeStamp = XAdESUtils.unmarshall( signatureTimeStampElement, XAdESTimeStampType.class); List<TimeStampToken> signatureTimeStampTokens = XAdESSignatureTimeStampValidation .findUnsignedSignaturePropertyElement( qualifyingPropertiesElement, "SigAndRefsTimeStamp"); if (null == sigAndRefsTimeStampElement) { XAdESTimeStampType sigAndRefsTimeStamp = XAdESUtils.unmarshall( sigAndRefsTimeStampElement, XAdESTimeStampType.class); List<TimeStampToken> sigAndRefsTimeStampTokens = XAdESSigAndRefsTimeStampValidation .findNextSibling(signatureTimeStampElement, XAdESUtils.XADES_141_NS_URI,
@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); } }