1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.ws.wssecurity.impl;
18
19 import javax.xml.namespace.QName;
20
21 import org.opensaml.ws.wssecurity.SecurityTokenReference;
22 import org.opensaml.xml.XMLObject;
23 import org.opensaml.xml.io.UnmarshallingException;
24 import org.opensaml.xml.util.XMLHelper;
25 import org.w3c.dom.Attr;
26
27
28
29
30 public class SecurityTokenReferenceUnmarshaller extends AbstractWSSecurityObjectUnmarshaller {
31
32
33 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
34 throws UnmarshallingException {
35 SecurityTokenReference str = (SecurityTokenReference) parentXMLObject;
36
37 str.getUnknownXMLObjects().add(childXMLObject);
38 }
39
40
41 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
42 SecurityTokenReference str = (SecurityTokenReference) xmlObject;
43
44 QName attribQName =
45 XMLHelper.constructQName(attribute.getNamespaceURI(), attribute.getLocalName(), attribute.getPrefix());
46 if (SecurityTokenReference.WSU_ID_ATTR_NAME.equals(attribQName)) {
47 str.setWSUId(attribute.getValue());
48 attribute.getOwnerElement().setIdAttributeNode(attribute, true);
49 } else if (SecurityTokenReference.WSSE_USAGE_ATTR_NAME.equals(attribQName)) {
50 str.setWSSEUsages(XMLHelper.getAttributeValueAsList(attribute));
51 } else {
52 XMLHelper.unmarshallToAttributeMap(str.getUnknownAttributes(), attribute);
53 }
54 }
55
56 }