1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.xml.signature;
18
19 import org.opensaml.xml.AbstractXMLObject;
20 import org.opensaml.xml.util.XMLConstants;
21 import org.w3c.dom.Element;
22 import org.w3c.dom.Node;
23 import org.w3c.dom.NodeList;
24
25
26
27
28 public abstract class AbstractSignableXMLObject extends AbstractXMLObject implements SignableXMLObject {
29
30
31 private Signature signature;
32
33
34
35
36
37
38
39
40 protected AbstractSignableXMLObject(String namespaceURI, String elementLocalName, String namespacePrefix) {
41 super(namespaceURI, elementLocalName, namespacePrefix);
42 }
43
44
45 public boolean isSigned() {
46 Element domElement = getDOM();
47
48 if (domElement == null) {
49 return false;
50 }
51
52 NodeList children = domElement.getChildNodes();
53 Element childElement;
54 for (int i = 0; i < children.getLength(); i++) {
55 if (children.item(i).getNodeType() != Node.ELEMENT_NODE) {
56 continue;
57 }
58
59 childElement = (Element) children.item(i);
60 if (childElement.getNamespaceURI().equals(XMLConstants.XMLSIG_NS)
61 && childElement.getLocalName().equals(Signature.DEFAULT_ELEMENT_LOCAL_NAME)) {
62 return true;
63 }
64 }
65
66 return false;
67 }
68
69
70 public Signature getSignature() {
71 return signature;
72 }
73
74
75 public void setSignature(Signature newSignature) {
76 signature = prepareForAssignment(signature, newSignature);
77 }
78 }