@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof SignatureProperty)) { return false; } SignatureProperty osp = (SignatureProperty)o; boolean idsEqual = id == null ? osp.getId() == null : id.equals(osp.getId()); @SuppressWarnings("unchecked") List<XMLStructure> ospContent = osp.getContent(); return equalsContent(ospContent) && target.equals(osp.getTarget()) && idsEqual; }
public static void marshal(XmlWriter xwriter, SignatureProperty sigProp, String dsPrefix, XMLCryptoContext context) throws MarshalException { xwriter.writeStartElement(dsPrefix, "SignatureProperty", XMLSignature.XMLNS); // set attributes xwriter.writeIdAttribute("", "", "Id", sigProp.getId()); xwriter.writeAttribute("", "", "Target", sigProp.getTarget()); // create and append any elements and mixed content List<XMLStructure> content = getContent(sigProp); for (XMLStructure property : content) { xwriter.marshalStructure(property, dsPrefix, context); } xwriter.writeEndElement(); // "SignatureProperty" }
@SuppressWarnings("unchecked") private static List<XMLStructure> getContent(SignatureProperty prop) { return prop.getContent(); } private boolean equalsContent(List<XMLStructure> otherContent) {
if (!signatureInfoProperty.getId().equals("idOfficeV1Details")) { LOG.error("Unexpected SignatureProperty: expected id=idOfficeV1Details " + "but got: " + signatureInfoProperty.getId()); return false; if (!signatureInfoProperty.getTarget().equals("#" + signatureId)) { LOG.error("Unexpected SignatureProperty: expected target=#" + signatureId + " but got: " + signatureInfoProperty.getTarget()); LOG.warn("Allowing this error because of a bug in Office2010"); if (signatureInfoProperty.getContent().size() != 1) { LOG.error("Unexpected content in SignatureInfoProperty."); return false; DOMStructure signatureInfoV1DOM = (DOMStructure) signatureInfoProperty.getContent().get(0); Node signatureInfoElement = signatureInfoV1DOM.getNode(); if (!signatureInfoElement.getNamespaceURI().equals(OOXMLSignatureFacet.OFFICE_DIGSIG_NS)) {
@SuppressWarnings("unchecked") private boolean validateSignatureProperty(SignatureProperty signatureProperty, String signatureId) { if (!signatureProperty.getId().equals("idSignatureTime")) { LOG.error("Unexpected SignatureProperty: expected id=idSignatureTime " + "but got: " + signatureProperty.getId()); return false; if (!signatureProperty.getTarget().equals("#" + signatureId)) { LOG.error("Unexpected SignatureProperty: expected target=#" + signatureId + "but got: " + signatureProperty.getTarget()); return false; List<XMLStructure> signatureTimeContent = signatureProperty.getContent(); if (signatureTimeContent.size() != 1) { LOG.error("Unexpected SignatureTime content.");