1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.common.xmlobject.impl;
18
19 import javax.xml.namespace.QName;
20
21 import org.opensaml.xml.XMLObject;
22 import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
23 import org.opensaml.xml.io.UnmarshallingException;
24 import org.opensaml.xml.signature.KeyInfo;
25 import org.opensaml.xml.util.XMLHelper;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28 import org.w3c.dom.Attr;
29
30 import edu.internet2.middleware.shibboleth.common.xmlobject.ShibbolethMetadataKeyAuthority;
31
32
33
34
35 public class ShibbolethMetadataKeyAuthorityUnmarshaller extends AbstractXMLObjectUnmarshaller {
36
37
38 private final Logger log = LoggerFactory.getLogger(ShibbolethMetadataKeyAuthorityUnmarshaller.class);
39
40
41 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
42 ShibbolethMetadataKeyAuthority authority = (ShibbolethMetadataKeyAuthority) xmlObject;
43
44 if (attribute.getLocalName().equals(ShibbolethMetadataKeyAuthority.VERIFY_DEPTH_ATTRIB_NAME)) {
45 authority.setVerifyDepth(Integer.valueOf(attribute.getValue()));
46 } else {
47 QName attribQName = XMLHelper.getNodeQName(attribute);
48 if (attribute.isId()) {
49 authority.getUnknownAttributes().registerID(attribQName);
50 }
51 authority.getUnknownAttributes().put(attribQName, attribute.getValue());
52 }
53
54 }
55
56
57 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
58 throws UnmarshallingException {
59 ShibbolethMetadataKeyAuthority authority = (ShibbolethMetadataKeyAuthority) parentXMLObject;
60
61 if (childXMLObject instanceof KeyInfo) {
62 authority.getKeyInfos().add((KeyInfo) childXMLObject);
63 } else {
64 log.debug("Ignorning unknown child element {}", childXMLObject.getElementQName());
65 }
66
67 }
68
69
70 protected void processElementContent(XMLObject xmlObject, String elementContent) {
71 log.debug("Ignorning unsupported element text content");
72 }
73 }