1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.opensaml.saml2.core.impl;
22
23 import java.util.Map.Entry;
24
25 import javax.xml.namespace.QName;
26
27 import org.opensaml.Configuration;
28 import org.opensaml.common.impl.AbstractSAMLObjectMarshaller;
29 import org.opensaml.saml2.core.SubjectConfirmationData;
30 import org.opensaml.xml.XMLObject;
31 import org.opensaml.xml.io.MarshallingException;
32 import org.opensaml.xml.util.XMLHelper;
33 import org.w3c.dom.Attr;
34 import org.w3c.dom.Element;
35
36
37
38
39 public class SubjectConfirmationDataMarshaller extends AbstractSAMLObjectMarshaller {
40
41
42 protected void marshallAttributes(XMLObject samlObject, Element domElement) throws MarshallingException {
43 SubjectConfirmationData subjectCD = (SubjectConfirmationData) samlObject;
44
45 if (subjectCD.getNotBefore() != null) {
46 String notBeforeStr = Configuration.getSAMLDateFormatter().print(subjectCD.getNotBefore());
47 domElement.setAttributeNS(null, SubjectConfirmationData.NOT_BEFORE_ATTRIB_NAME, notBeforeStr);
48 }
49
50 if (subjectCD.getNotOnOrAfter() != null) {
51 String notOnOrAfterStr = Configuration.getSAMLDateFormatter().print(subjectCD.getNotOnOrAfter());
52 domElement.setAttributeNS(null, SubjectConfirmationData.NOT_ON_OR_AFTER_ATTRIB_NAME, notOnOrAfterStr);
53 }
54
55 if (subjectCD.getRecipient() != null) {
56 domElement.setAttributeNS(null, SubjectConfirmationData.RECIPIENT_ATTRIB_NAME, subjectCD.getRecipient());
57 }
58
59 if (subjectCD.getInResponseTo() != null) {
60 domElement.setAttributeNS(null, SubjectConfirmationData.IN_RESPONSE_TO_ATTRIB_NAME, subjectCD
61 .getInResponseTo());
62 }
63
64 if (subjectCD.getAddress() != null) {
65 domElement.setAttributeNS(null, SubjectConfirmationData.ADDRESS_ATTRIB_NAME, subjectCD.getAddress());
66 }
67
68 Attr attribute;
69 for (Entry<QName, String> entry : subjectCD.getUnknownAttributes().entrySet()) {
70 attribute = XMLHelper.constructAttribute(domElement.getOwnerDocument(), entry.getKey());
71 attribute.setValue(entry.getValue());
72 domElement.setAttributeNodeNS(attribute);
73 if (Configuration.isIDAttribute(entry.getKey())
74 || subjectCD.getUnknownAttributes().isIDAttribute(entry.getKey())) {
75 attribute.getOwnerElement().setIdAttributeNode(attribute, true);
76 }
77 }
78 }
79 }