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