From e8d75900802dfa84c06290f88e365fd355ce6881 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Thu, 12 Oct 2006 20:37:43 +0000 Subject: [PATCH] Removed ChildlessElement class references, ensure ComplexElement gets copied during cloning. --- saml/saml1/binding/impl/SAML1POSTDecoder.cpp | 2 + saml/saml1/core/Assertions.h | 48 +++++++------- saml/saml1/core/Protocols.h | 19 +++++- saml/saml1/core/impl/AssertionsImpl.cpp | 56 ++++++++-------- .../saml1/core/impl/AssertionsSchemaValidators.cpp | 2 + saml/saml1/core/impl/ProtocolsImpl.cpp | 24 ++++--- saml/saml1/core/impl/ProtocolsSchemaValidators.cpp | 2 + saml/saml2/binding/impl/SAML2POSTDecoder.cpp | 1 + saml/saml2/core/Assertions.h | 74 +++++++++++----------- saml/saml2/core/Protocols.h | 1 - saml/saml2/core/impl/Assertions20Impl.cpp | 58 ++++++++++------- .../core/impl/Assertions20SchemaValidators.cpp | 2 + saml/saml2/core/impl/Protocols20Impl.cpp | 58 +++++++++-------- .../core/impl/Protocols20SchemaValidators.cpp | 2 + saml/saml2/metadata/Metadata.h | 28 +++----- saml/saml2/metadata/impl/MetadataImpl.cpp | 33 +++++----- .../metadata/impl/MetadataSchemaValidators.cpp | 2 + samltest/data/saml2/binding/SAML2Response.xml | 16 +++-- samltest/data/signature/SAML1Assertion.xml | 3 +- samltest/data/signature/SAML1Request.xml | 3 +- samltest/data/signature/SAML1Response.xml | 14 ++-- samltest/data/signature/SAML2Assertion.xml | 3 +- samltest/saml1/binding/SAML1ArtifactTest.h | 2 + samltest/saml2/binding/SAML2ArtifactTest.h | 1 + samltest/signature/SAML1RequestTest.h | 1 + samltest/signature/SAML1ResponseTest.h | 3 +- 26 files changed, 257 insertions(+), 201 deletions(-) diff --git a/saml/saml1/binding/impl/SAML1POSTDecoder.cpp b/saml/saml1/binding/impl/SAML1POSTDecoder.cpp index ee458ec..e4f01dd 100644 --- a/saml/saml1/binding/impl/SAML1POSTDecoder.cpp +++ b/saml/saml1/binding/impl/SAML1POSTDecoder.cpp @@ -22,6 +22,7 @@ #include "internal.h" #include "exceptions.h" +#include "saml1/core/Assertions.h" #include "saml1/binding/SAML1POSTDecoder.h" #include "saml2/metadata/Metadata.h" #include "saml2/metadata/MetadataProvider.h" @@ -31,6 +32,7 @@ #include #include #include +#include using namespace opensaml::saml2md; using namespace opensaml::saml1p; diff --git a/saml/saml1/core/Assertions.h b/saml/saml1/core/Assertions.h index 53843d0..8f0ea55 100644 --- a/saml/saml1/core/Assertions.h +++ b/saml/saml1/core/Assertions.h @@ -28,12 +28,10 @@ #include #include -#include #include #include #include #include -#include #define DECL_SAML1OBJECTBUILDER(cname) \ DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML1_NS,opensaml::SAMLConstants::SAML1_PREFIX) @@ -77,20 +75,20 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,NameIdentifier,xmltooling::SimpleElement,SAML 1.x NameIdentifier element); + BEGIN_XMLOBJECT(SAML_API,NameIdentifier,xmltooling::XMLObject,SAML 1.x NameIdentifier element); DECL_STRING_ATTRIB(NameQualifier,NAMEQUALIFIER); DECL_STRING_ATTRIB(Format,FORMAT); - DECL_XMLOBJECT_CONTENT(Name); + DECL_SIMPLE_CONTENT(Name); /** NameIdentifierType local name */ static const XMLCh TYPE_NAME[]; - /** Unspecified name format ID */ - static const XMLCh UNSPECIFIED[]; - /** Email address name format ID */ - static const XMLCh EMAIL[]; - /** X.509 subject name format ID */ - static const XMLCh X509_SUBJECT[]; - /** Windows domain qualified name format ID */ - static const XMLCh WIN_DOMAIN_QUALIFIED[]; + /** Unspecified name format ID */ + static const XMLCh UNSPECIFIED[]; + /** Email address name format ID */ + static const XMLCh EMAIL[]; + /** X.509 subject name format ID */ + static const XMLCh X509_SUBJECT[]; + /** Windows domain qualified name format ID */ + static const XMLCh WIN_DOMAIN_QUALIFIED[]; END_XMLOBJECT; BEGIN_XMLOBJECT2(SAML_API,SubjectConfirmationData,xmltooling::ElementProxy,xmltooling::AttributeExtensibleXMLObject,SAML 1.x SubjectConfirmationData element); @@ -103,15 +101,15 @@ namespace opensaml { /** SubjectConfirmationType local name */ static const XMLCh TYPE_NAME[]; /** Deprecated SAML 1.0 Artifact confirmation method */ - static const XMLCh ARTIFACT01[]; + static const XMLCh ARTIFACT01[]; /** Artifact confirmation method */ - static const XMLCh ARTIFACT[]; + static const XMLCh ARTIFACT[]; /** Bearer confirmation method */ - static const XMLCh BEARER[]; - /** Holder of key confirmation method */ - static const XMLCh HOLDER_KEY[]; - /** Sender vouches confirmation method */ - static const XMLCh SENDER_VOUCHES[]; + static const XMLCh BEARER[]; + /** Holder of key confirmation method */ + static const XMLCh HOLDER_KEY[]; + /** Sender vouches confirmation method */ + static const XMLCh SENDER_VOUCHES[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Subject,xmltooling::XMLObject,SAML 1.x Subject element); @@ -152,19 +150,19 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,Action,xmltooling::SimpleElement,SAML 1.x Action element); + BEGIN_XMLOBJECT(SAML_API,Action,xmltooling::XMLObject,SAML 1.x Action element); DECL_STRING_ATTRIB(Namespace,NAMESPACE); - DECL_XMLOBJECT_CONTENT(Action); + DECL_SIMPLE_CONTENT(Action); /** ActionType local name */ static const XMLCh TYPE_NAME[]; /** Read/Write/Execute/Delete/Control Action Namespace */ - static const XMLCh RWEDC_NEG_ACTION_NAMESPACE[]; + static const XMLCh RWEDC_NEG_ACTION_NAMESPACE[]; /** Read/Write/Execute/Delete/Control with Negation Action Namespace */ - static const XMLCh RWEDC_ACTION_NAMESPACE[]; + static const XMLCh RWEDC_ACTION_NAMESPACE[]; /** Get/Head/Put/Post Action Namespace */ - static const XMLCh GHPP_ACTION_NAMESPACE[]; + static const XMLCh GHPP_ACTION_NAMESPACE[]; /** UNIX File Permissions Action Namespace */ - static const XMLCh UNIX_ACTION_NAMESPACE[]; + static const XMLCh UNIX_ACTION_NAMESPACE[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Evidence,xmltooling::XMLObject,SAML 1.x Evidence element); diff --git a/saml/saml1/core/Protocols.h b/saml/saml1/core/Protocols.h index e30ff19..bf22e15 100644 --- a/saml/saml1/core/Protocols.h +++ b/saml/saml1/core/Protocols.h @@ -23,13 +23,30 @@ #ifndef __saml1_protocols_h__ #define __saml1_protocols_h__ -#include +#include +#include + +#include +#include +#include +#include +#include +#include #define DECL_SAML1POBJECTBUILDER(cname) \ DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML1P_NS,opensaml::SAMLConstants::SAML1P_PREFIX) namespace opensaml { + namespace saml1 { + class SAML_API Action; + class SAML_API Assertion; + class SAML_API AssertionIDReference; + class SAML_API AttributeDesignator; + class SAML_API Evidence; + class SAML_API Subject; + }; + /** * @namespace opensaml::saml1p * SAML 1.x protocol namespace diff --git a/saml/saml1/core/impl/AssertionsImpl.cpp b/saml/saml1/core/impl/AssertionsImpl.cpp index 69df6de..1378de8 100644 --- a/saml/saml1/core/impl/AssertionsImpl.cpp +++ b/saml/saml1/core/impl/AssertionsImpl.cpp @@ -24,7 +24,6 @@ #include "exceptions.h" #include "saml1/core/Assertions.h" -#include #include #include #include @@ -69,7 +68,7 @@ namespace opensaml { } AudienceRestrictionConditionImpl(const AudienceRestrictionConditionImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { VectorOf(Audience) v=getAudiences(); for (vector::const_iterator i=src.m_Audiences.begin(); i!=src.m_Audiences.end(); i++) { if (*i) { @@ -92,7 +91,7 @@ namespace opensaml { }; class SAML_DLLLOCAL DoNotCacheConditionImpl : public virtual DoNotCacheCondition, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -104,7 +103,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - DoNotCacheConditionImpl(const DoNotCacheConditionImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + DoNotCacheConditionImpl(const DoNotCacheConditionImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { } IMPL_XMLOBJECT_CLONE(DoNotCacheCondition); @@ -130,7 +130,8 @@ namespace opensaml { init(); } - ConditionsImpl(const ConditionsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + ConditionsImpl(const ConditionsImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setNotBefore(src.getNotBefore()); setNotOnOrAfter(src.getNotOnOrAfter()); @@ -190,7 +191,6 @@ namespace opensaml { class SAML_DLLLOCAL NameIdentifierImpl : public virtual NameIdentifier, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -220,7 +220,6 @@ namespace opensaml { IMPL_XMLOBJECT_CLONE(NameIdentifier); IMPL_STRING_ATTRIB(Format); IMPL_STRING_ATTRIB(NameQualifier); - IMPL_XMLOBJECT_CONTENT; protected: void marshallAttributes(DOMElement* domElement) const { @@ -243,8 +242,7 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - SubjectConfirmationDataImpl(const SubjectConfirmationDataImpl& src) - : AnyElementImpl(src) { + SubjectConfirmationDataImpl(const SubjectConfirmationDataImpl& src) : AnyElementImpl(src) { } IMPL_XMLOBJECT_CLONE(SubjectConfirmationData); @@ -264,7 +262,8 @@ namespace opensaml { init(); } - SubjectConfirmationImpl(const SubjectConfirmationImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectConfirmationImpl(const SubjectConfirmationImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getSubjectConfirmationData()) setSubjectConfirmationData(src.getSubjectConfirmationData()->clone()); @@ -319,7 +318,8 @@ namespace opensaml { init(); } - SubjectImpl(const SubjectImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectImpl(const SubjectImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getNameIdentifier()) setNameIdentifier(src.getNameIdentifier()->cloneNameIdentifier()); @@ -372,7 +372,8 @@ namespace opensaml { init(); } - SubjectStatementImpl(const SubjectStatementImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectStatementImpl(const SubjectStatementImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getSubject()) setSubject(src.getSubject()->cloneSubject()); @@ -388,7 +389,7 @@ namespace opensaml { }; class SAML_DLLLOCAL SubjectLocalityImpl : public virtual SubjectLocality, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -404,7 +405,8 @@ namespace opensaml { init(); } - SubjectLocalityImpl(const SubjectLocalityImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectLocalityImpl(const SubjectLocalityImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setIPAddress(src.getIPAddress()); setDNSAddress(src.getDNSAddress()); @@ -431,7 +433,7 @@ namespace opensaml { }; class SAML_DLLLOCAL AuthorityBindingImpl : public virtual AuthorityBinding, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -448,7 +450,8 @@ namespace opensaml { init(); } - AuthorityBindingImpl(const AuthorityBindingImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AuthorityBindingImpl(const AuthorityBindingImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setAuthorityKind(src.getAuthorityKind()); setLocation(src.getLocation()); @@ -549,7 +552,6 @@ namespace opensaml { class SAML_DLLLOCAL ActionImpl : public virtual Action, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -569,7 +571,6 @@ namespace opensaml { IMPL_XMLOBJECT_CLONE(Action); IMPL_STRING_ATTRIB(Namespace); - IMPL_XMLOBJECT_CONTENT; protected: void marshallAttributes(DOMElement* domElement) const { @@ -594,8 +595,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - EvidenceImpl(const EvidenceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { - + EvidenceImpl(const EvidenceImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { AssertionIDReference* ref=dynamic_cast(*i); @@ -696,7 +697,7 @@ namespace opensaml { }; class SAML_DLLLOCAL AttributeDesignatorImpl : public virtual AttributeDesignator, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -712,7 +713,8 @@ namespace opensaml { init(); } - AttributeDesignatorImpl(const AttributeDesignatorImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AttributeDesignatorImpl(const AttributeDesignatorImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setAttributeName(src.getAttributeName()); setAttributeNamespace(src.getAttributeNamespace()); @@ -755,7 +757,8 @@ namespace opensaml { init(); } - AttributeImpl(const AttributeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AttributeImpl(const AttributeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setAttributeName(src.getAttributeName()); setAttributeNamespace(src.getAttributeNamespace()); @@ -857,8 +860,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - AdviceImpl(const AdviceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { - + AdviceImpl(const AdviceImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { AssertionIDReference* ref=dynamic_cast(*i); @@ -935,7 +938,8 @@ namespace opensaml { init(); } - AssertionImpl(const AssertionImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AssertionImpl(const AssertionImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setMinorVersion(src.m_MinorVersion); setAssertionID(src.getAssertionID()); diff --git a/saml/saml1/core/impl/AssertionsSchemaValidators.cpp b/saml/saml1/core/impl/AssertionsSchemaValidators.cpp index 72a6143..ca8c002 100644 --- a/saml/saml1/core/impl/AssertionsSchemaValidators.cpp +++ b/saml/saml1/core/impl/AssertionsSchemaValidators.cpp @@ -24,6 +24,8 @@ #include "exceptions.h" #include "saml1/core/Assertions.h" +#include + using namespace opensaml::saml1; using namespace opensaml; using namespace xmltooling; diff --git a/saml/saml1/core/impl/ProtocolsImpl.cpp b/saml/saml1/core/impl/ProtocolsImpl.cpp index 6f73c79..9ade57f 100644 --- a/saml/saml1/core/impl/ProtocolsImpl.cpp +++ b/saml/saml1/core/impl/ProtocolsImpl.cpp @@ -22,9 +22,9 @@ #include "internal.h" #include "exceptions.h" +#include "saml1/core/Assertions.h" #include "saml1/core/Protocols.h" -#include #include #include #include @@ -55,8 +55,7 @@ namespace opensaml { DECL_XMLOBJECTIMPL_SIMPLE(SAML_DLLLOCAL,StatusMessage); class SAML_DLLLOCAL RespondWithImpl : public virtual RespondWith, - protected AbstractSimpleElement, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -91,7 +90,6 @@ namespace opensaml { } IMPL_XMLOBJECT_CLONE(RespondWith); - IMPL_XMLOBJECT_CONTENT; }; class SAML_DLLLOCAL SubjectQueryImpl : public virtual SubjectQuery, @@ -117,7 +115,8 @@ namespace opensaml { init(); } - SubjectQueryImpl(const SubjectQueryImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectQueryImpl(const SubjectQueryImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getSubject()) setSubject(src.getSubject()->cloneSubject()); @@ -317,7 +316,8 @@ namespace opensaml { init(); } - RequestAbstractTypeImpl(const RequestAbstractTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + RequestAbstractTypeImpl(const RequestAbstractTypeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setMinorVersion(src.m_MinorVersion); setRequestID(src.getRequestID()); @@ -494,7 +494,8 @@ namespace opensaml { init(); } - StatusCodeImpl(const StatusCodeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusCodeImpl(const StatusCodeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setValue(src.getValue()); if (src.getStatusCode()) @@ -533,7 +534,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - StatusDetailImpl(const StatusDetailImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusDetailImpl(const StatusDetailImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { VectorOf(XMLObject) v=getDetails(); for (vector::const_iterator i=src.m_Details.begin(); i!=src.m_Details.end(); i++) { if (*i) { @@ -578,7 +580,8 @@ namespace opensaml { init(); } - StatusImpl(const StatusImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusImpl(const StatusImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getStatusCode()) setStatusCode(src.getStatusCode()->cloneStatusCode()); @@ -636,7 +639,8 @@ namespace opensaml { init(); } - ResponseAbstractTypeImpl(const ResponseAbstractTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + ResponseAbstractTypeImpl(const ResponseAbstractTypeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setMinorVersion(src.m_MinorVersion); setResponseID(src.getResponseID()); diff --git a/saml/saml1/core/impl/ProtocolsSchemaValidators.cpp b/saml/saml1/core/impl/ProtocolsSchemaValidators.cpp index 445ec2b..06f0b2b 100644 --- a/saml/saml1/core/impl/ProtocolsSchemaValidators.cpp +++ b/saml/saml1/core/impl/ProtocolsSchemaValidators.cpp @@ -24,6 +24,8 @@ #include "exceptions.h" #include "saml1/core/Protocols.h" +#include + using namespace opensaml::saml1p; using namespace opensaml::saml1; using namespace opensaml; diff --git a/saml/saml2/binding/impl/SAML2POSTDecoder.cpp b/saml/saml2/binding/impl/SAML2POSTDecoder.cpp index 7da4411..acccd93 100644 --- a/saml/saml2/binding/impl/SAML2POSTDecoder.cpp +++ b/saml/saml2/binding/impl/SAML2POSTDecoder.cpp @@ -32,6 +32,7 @@ #include #include #include +#include using namespace opensaml::saml2md; using namespace opensaml::saml2p; diff --git a/saml/saml2/core/Assertions.h b/saml/saml2/core/Assertions.h index a21444d..c48a323 100644 --- a/saml/saml2/core/Assertions.h +++ b/saml/saml2/core/Assertions.h @@ -28,13 +28,11 @@ #include #include -#include #include #include #include #include #include -#include #define DECL_SAML2OBJECTBUILDER(cname) \ DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20_NS,opensaml::SAMLConstants::SAML20_PREFIX) @@ -86,30 +84,30 @@ namespace opensaml { DECL_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER); END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,NameIDType,xmltooling::SimpleElement,SAML 2.0 NameIDType type); + BEGIN_XMLOBJECT(SAML_API,NameIDType,xmltooling::XMLObject,SAML 2.0 NameIDType type); DECL_STRING_ATTRIB(NameQualifier,NAMEQUALIFIER); DECL_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER); DECL_STRING_ATTRIB(Format,FORMAT); DECL_STRING_ATTRIB(SPProvidedID,SPPROVIDEDID); - DECL_XMLOBJECT_CONTENT(Name); + DECL_SIMPLE_CONTENT(Name); /** NameIDType local name */ static const XMLCh TYPE_NAME[]; - /** Unspecified name format ID */ - static const XMLCh UNSPECIFIED[]; - /** Email address name format ID */ - static const XMLCh EMAIL[]; - /** X.509 subject name format ID */ - static const XMLCh X509_SUBJECT[]; - /** Windows domain qualified name format ID */ - static const XMLCh WIN_DOMAIN_QUALIFIED[]; - /** Kerberos principal name format ID */ - static const XMLCh KERBEROS[]; - /** Entity identifier name format ID */ - static const XMLCh ENTITY[]; - /** Persistent identifier name format ID */ - static const XMLCh PERSISTENT[]; - /** Transient identifier name format ID */ - static const XMLCh TRANSIENT[]; + /** Unspecified name format ID */ + static const XMLCh UNSPECIFIED[]; + /** Email address name format ID */ + static const XMLCh EMAIL[]; + /** X.509 subject name format ID */ + static const XMLCh X509_SUBJECT[]; + /** Windows domain qualified name format ID */ + static const XMLCh WIN_DOMAIN_QUALIFIED[]; + /** Kerberos principal name format ID */ + static const XMLCh KERBEROS[]; + /** Entity identifier name format ID */ + static const XMLCh ENTITY[]; + /** Persistent identifier name format ID */ + static const XMLCh PERSISTENT[]; + /** Transient identifier name format ID */ + static const XMLCh TRANSIENT[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,NameID,NameIDType,SAML 2.0 NameID element); @@ -156,7 +154,7 @@ namespace opensaml { DECL_STRING_ATTRIB(Recipient,RECIPIENT); DECL_STRING_ATTRIB(InResponseTo,INRESPONSETO); DECL_STRING_ATTRIB(Address,ADDRESS); - DECL_XMLOBJECT_CONTENT(Data); + DECL_SIMPLE_CONTENT(Data); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,KeyInfoConfirmationDataType,xmltooling::AttributeExtensibleXMLObject,SAML 2.0 KeyInfoConfirmationDataType type); @@ -180,11 +178,11 @@ namespace opensaml { /** SubjectConfirmationType local name */ static const XMLCh TYPE_NAME[]; /** Bearer confirmation method */ - static const XMLCh BEARER[]; - /** Holder of key confirmation method */ - static const XMLCh HOLDER_KEY[]; - /** Sender vouches confirmation method */ - static const XMLCh SENDER_VOUCHES[]; + static const XMLCh BEARER[]; + /** Holder of key confirmation method */ + static const XMLCh HOLDER_KEY[]; + /** Sender vouches confirmation method */ + static const XMLCh SENDER_VOUCHES[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Subject,xmltooling::XMLObject,SAML 2.0 Subject element); @@ -228,19 +226,19 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,Action,xmltooling::SimpleElement,SAML 2.0 Action element); + BEGIN_XMLOBJECT(SAML_API,Action,xmltooling::XMLObject,SAML 2.0 Action element); DECL_STRING_ATTRIB(Namespace,NAMESPACE); - DECL_XMLOBJECT_CONTENT(Action); + DECL_SIMPLE_CONTENT(Action); /** ActionType local name */ static const XMLCh TYPE_NAME[]; /** Read/Write/Execute/Delete/Control Action Namespace */ - static const XMLCh RWEDC_NEG_ACTION_NAMESPACE[]; + static const XMLCh RWEDC_NEG_ACTION_NAMESPACE[]; /** Read/Write/Execute/Delete/Control with Negation Action Namespace */ - static const XMLCh RWEDC_ACTION_NAMESPACE[]; + static const XMLCh RWEDC_ACTION_NAMESPACE[]; /** Get/Head/Put/Post Action Namespace */ - static const XMLCh GHPP_ACTION_NAMESPACE[]; + static const XMLCh GHPP_ACTION_NAMESPACE[]; /** UNIX File Permissions Action Namespace */ - static const XMLCh UNIX_ACTION_NAMESPACE[]; + static const XMLCh UNIX_ACTION_NAMESPACE[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Evidence,xmltooling::XMLObject,SAML 2.0 Evidence element); @@ -277,12 +275,12 @@ namespace opensaml { DECL_XMLOBJECT_CHILDREN(AttributeValue); /** AttributeType local name */ static const XMLCh TYPE_NAME[]; - /** Unspecified attribute name format ID */ - static const XMLCh UNSPECIFIED[]; - /** URI reference attribute name format ID */ - static const XMLCh URI_REFERENCE[]; - /** Basic attribute name format ID */ - static const XMLCh BASIC[]; + /** Unspecified attribute name format ID */ + static const XMLCh UNSPECIFIED[]; + /** URI reference attribute name format ID */ + static const XMLCh URI_REFERENCE[]; + /** Basic attribute name format ID */ + static const XMLCh BASIC[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,EncryptedAttribute,EncryptedElementType,SAML 2.0 EncryptedAttribute element); diff --git a/saml/saml2/core/Protocols.h b/saml/saml2/core/Protocols.h index 2ab5ab4..fb02de7 100644 --- a/saml/saml2/core/Protocols.h +++ b/saml/saml2/core/Protocols.h @@ -25,7 +25,6 @@ #include - #define DECL_SAML2POBJECTBUILDER(cname) \ DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20P_NS,opensaml::SAMLConstants::SAML20P_PREFIX) diff --git a/saml/saml2/core/impl/Assertions20Impl.cpp b/saml/saml2/core/impl/Assertions20Impl.cpp index c4c37a9..31d19cb 100644 --- a/saml/saml2/core/impl/Assertions20Impl.cpp +++ b/saml/saml2/core/impl/Assertions20Impl.cpp @@ -25,7 +25,6 @@ #include "saml/encryption/EncryptedKeyResolver.h" #include "saml2/core/Assertions.h" -#include #include #include #include @@ -62,7 +61,6 @@ namespace opensaml { class SAML_DLLLOCAL NameIDTypeImpl : public virtual NameIDType, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -103,7 +101,6 @@ namespace opensaml { IMPL_STRING_ATTRIB(SPNameQualifier); IMPL_STRING_ATTRIB(Format); IMPL_STRING_ATTRIB(SPProvidedID); - IMPL_XMLOBJECT_CONTENT; protected: void marshallAttributes(DOMElement* domElement) const { @@ -182,7 +179,7 @@ namespace opensaml { } EncryptedElementTypeImpl(const EncryptedElementTypeImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getEncryptedData()) setEncryptedData(src.getEncryptedData()->cloneEncryptedData()); @@ -254,7 +251,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - AudienceRestrictionImpl(const AudienceRestrictionImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AudienceRestrictionImpl(const AudienceRestrictionImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { VectorOf(Audience) v=getAudiences(); for (vector::const_iterator i=src.m_Audiences.begin(); i!=src.m_Audiences.end(); i++) { if (*i) { @@ -277,7 +275,7 @@ namespace opensaml { }; class SAML_DLLLOCAL OneTimeUseImpl : public virtual OneTimeUse, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -289,7 +287,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - OneTimeUseImpl(const OneTimeUseImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + OneTimeUseImpl(const OneTimeUseImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { } IMPL_XMLOBJECT_CLONE(OneTimeUse); @@ -314,7 +313,8 @@ namespace opensaml { m_Count=NULL; } - ProxyRestrictionImpl(const ProxyRestrictionImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + ProxyRestrictionImpl(const ProxyRestrictionImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { setCount(src.m_Count); VectorOf(Audience) v=getAudiences(); for (vector::const_iterator i=src.m_Audiences.begin(); i!=src.m_Audiences.end(); i++) { @@ -368,7 +368,8 @@ namespace opensaml { init(); } - ConditionsImpl(const ConditionsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + ConditionsImpl(const ConditionsImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setNotBefore(src.getNotBefore()); setNotOnOrAfter(src.getNotOnOrAfter()); @@ -533,7 +534,8 @@ namespace opensaml { } KeyInfoConfirmationDataTypeImpl(const KeyInfoConfirmationDataTypeImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setNotBefore(src.getNotBefore()); setNotOnOrAfter(src.getNotOnOrAfter()); @@ -638,7 +640,8 @@ namespace opensaml { init(); } - SubjectConfirmationImpl(const SubjectConfirmationImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectConfirmationImpl(const SubjectConfirmationImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setMethod(src.getMethod()); if (src.getBaseID()) @@ -708,7 +711,8 @@ namespace opensaml { init(); } - SubjectImpl(const SubjectImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectImpl(const SubjectImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getBaseID()) setBaseID(src.getBaseID()->cloneBaseID()); @@ -741,7 +745,7 @@ namespace opensaml { }; class SAML_DLLLOCAL SubjectLocalityImpl : public virtual SubjectLocality, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -760,7 +764,8 @@ namespace opensaml { init(); } - SubjectLocalityImpl(const SubjectLocalityImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + SubjectLocalityImpl(const SubjectLocalityImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setAddress(src.getAddress()); setDNSName(src.getDNSName()); @@ -826,7 +831,8 @@ namespace opensaml { init(); } - AuthnContextImpl(const AuthnContextImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AuthnContextImpl(const AuthnContextImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getAuthnContextClassRef()) setAuthnContextClassRef(src.getAuthnContextClassRef()->cloneAuthnContextClassRef()); @@ -888,7 +894,8 @@ namespace opensaml { init(); } - AuthnStatementImpl(const AuthnStatementImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AuthnStatementImpl(const AuthnStatementImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setAuthnInstant(src.getAuthnInstant()); setSessionIndex(src.getSessionIndex()); @@ -932,7 +939,6 @@ namespace opensaml { class SAML_DLLLOCAL ActionImpl : public virtual Action, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -953,7 +959,6 @@ namespace opensaml { IMPL_XMLOBJECT_CLONE(Action); IMPL_STRING_ATTRIB(Namespace); - IMPL_XMLOBJECT_CONTENT; protected: void marshallAttributes(DOMElement* domElement) const { @@ -979,7 +984,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - EvidenceImpl(const EvidenceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + EvidenceImpl(const EvidenceImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { AssertionIDRef* ref=dynamic_cast(*i); @@ -1050,7 +1056,7 @@ namespace opensaml { } AuthzDecisionStatementImpl(const AuthzDecisionStatementImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setResource(src.getResource()); setDecision(src.getDecision()); @@ -1132,7 +1138,8 @@ namespace opensaml { } AttributeImpl(const AttributeImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setName(src.getName()); setNameFormat(src.getNameFormat()); @@ -1216,7 +1223,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - AttributeStatementImpl(const AttributeStatementImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AttributeStatementImpl(const AttributeStatementImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { Attribute* attribute=dynamic_cast(*i); @@ -1262,7 +1270,8 @@ namespace opensaml { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - AdviceImpl(const AdviceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AdviceImpl(const AdviceImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { AssertionIDRef* ref=dynamic_cast(*i); @@ -1378,7 +1387,8 @@ namespace opensaml { init(); } - AssertionImpl(const AssertionImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + AssertionImpl(const AssertionImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setVersion(src.getVersion()); setID(src.getID()); diff --git a/saml/saml2/core/impl/Assertions20SchemaValidators.cpp b/saml/saml2/core/impl/Assertions20SchemaValidators.cpp index 4aaeadf..fac134c 100644 --- a/saml/saml2/core/impl/Assertions20SchemaValidators.cpp +++ b/saml/saml2/core/impl/Assertions20SchemaValidators.cpp @@ -24,6 +24,8 @@ #include "exceptions.h" #include "saml2/core/Assertions.h" +#include + using namespace opensaml::saml2; using namespace opensaml; using namespace xmltooling; diff --git a/saml/saml2/core/impl/Protocols20Impl.cpp b/saml/saml2/core/impl/Protocols20Impl.cpp index f01c7fe..f43d38d 100644 --- a/saml/saml2/core/impl/Protocols20Impl.cpp +++ b/saml/saml2/core/impl/Protocols20Impl.cpp @@ -25,7 +25,6 @@ #include "saml/encryption/EncryptedKeyResolver.h" #include "saml2/core/Protocols.h" -#include #include #include #include @@ -122,7 +121,8 @@ namespace opensaml { init(); } - StatusCodeImpl(const StatusCodeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusCodeImpl(const StatusCodeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setValue(src.getValue()); if (src.getStatusCode()) @@ -162,14 +162,15 @@ namespace opensaml { StatusDetailImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - StatusDetailImpl(const StatusDetailImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { - VectorOf(XMLObject) v=getDetails(); - for (vector::const_iterator i=src.m_Details.begin(); i!=src.m_Details.end(); i++) { - if (*i) { - v.push_back((*i)->clone()); - } + StatusDetailImpl(const StatusDetailImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { + VectorOf(XMLObject) v=getDetails(); + for (vector::const_iterator i=src.m_Details.begin(); i!=src.m_Details.end(); i++) { + if (*i) { + v.push_back((*i)->clone()); } } + } IMPL_XMLOBJECT_CLONE(StatusDetail); IMPL_XMLOBJECT_CHILDREN(Detail,m_children.end()); @@ -205,12 +206,12 @@ namespace opensaml { virtual ~StatusImpl() { } StatusImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) - : AbstractXMLObject(nsURI, localName, prefix, schemaType) - { - init(); + : AbstractXMLObject(nsURI, localName, prefix, schemaType) { + init(); } - StatusImpl(const StatusImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusImpl(const StatusImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getStatusCode()) setStatusCode(src.getStatusCode()->cloneStatusCode()); @@ -279,7 +280,8 @@ namespace opensaml { init(); } - RequestAbstractTypeImpl(const RequestAbstractTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + RequestAbstractTypeImpl(const RequestAbstractTypeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setVersion(src.getVersion()); @@ -440,12 +442,12 @@ namespace opensaml { } RequestedAuthnContextImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) - : AbstractXMLObject(nsURI, localName, prefix, schemaType) - { + : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } - RequestedAuthnContextImpl(const RequestedAuthnContextImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + RequestedAuthnContextImpl(const RequestedAuthnContextImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setComparison(src.getComparison()); for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { @@ -597,8 +599,7 @@ namespace opensaml { } AuthzDecisionQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) - : AbstractXMLObject(nsURI, localName, prefix, schemaType) - { + : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } @@ -648,7 +649,7 @@ namespace opensaml { }; class SAML_DLLLOCAL NameIDPolicyImpl : public virtual NameIDPolicy, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -671,7 +672,8 @@ namespace opensaml { init(); } - NameIDPolicyImpl(const NameIDPolicyImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + NameIDPolicyImpl(const NameIDPolicyImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setFormat(src.getFormat()); setSPNameQualifier(src.getSPNameQualifier()); @@ -699,7 +701,7 @@ namespace opensaml { }; class SAML_DLLLOCAL IDPEntryImpl : public virtual IDPEntry, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -723,7 +725,8 @@ namespace opensaml { init(); } - IDPEntryImpl(const IDPEntryImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + IDPEntryImpl(const IDPEntryImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); setProviderID(src.getProviderID()); setName(src.getName()); @@ -1034,7 +1037,8 @@ namespace opensaml { init(); } - StatusResponseTypeImpl(const StatusResponseTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + StatusResponseTypeImpl(const StatusResponseTypeImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setInResponseTo(src.getInResponseTo()); @@ -1273,7 +1277,8 @@ namespace opensaml { init(); } - NewEncryptedIDImpl(const NewEncryptedIDImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + NewEncryptedIDImpl(const NewEncryptedIDImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getEncryptedData()) setEncryptedData(src.getEncryptedData()->cloneEncryptedData()); @@ -1320,7 +1325,7 @@ namespace opensaml { }; class SAML_DLLLOCAL TerminateImpl : public virtual Terminate, - public AbstractChildlessElement, + public AbstractSimpleElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -1331,7 +1336,8 @@ namespace opensaml { TerminateImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - TerminateImpl(const TerminateImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + TerminateImpl(const TerminateImpl& src) + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { } IMPL_XMLOBJECT_CLONE(Terminate); diff --git a/saml/saml2/core/impl/Protocols20SchemaValidators.cpp b/saml/saml2/core/impl/Protocols20SchemaValidators.cpp index ceb5d8b..547a116 100644 --- a/saml/saml2/core/impl/Protocols20SchemaValidators.cpp +++ b/saml/saml2/core/impl/Protocols20SchemaValidators.cpp @@ -24,6 +24,8 @@ #include "exceptions.h" #include "saml2/core/Protocols.h" +#include + using namespace opensaml::saml2p; using namespace opensaml::saml2; using namespace opensaml; diff --git a/saml/saml2/metadata/Metadata.h b/saml/saml2/metadata/Metadata.h index c8167a2..435ad64 100644 --- a/saml/saml2/metadata/Metadata.h +++ b/saml/saml2/metadata/Metadata.h @@ -24,17 +24,7 @@ #define __saml2_metadata_h__ #include -#include - #include -#include -#include -#include -#include -#include -#include -#include -#include #define DECL_SAML2MDOBJECTBUILDER(cname) \ DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20MD_NS,opensaml::SAMLConstants::SAML20MD_PREFIX) @@ -87,28 +77,28 @@ namespace opensaml { DECL_XMLOBJECT_SIMPLE(SAML_API,ActionNamespace,Namespace,SAML 2.0 Metadata Extension ActionNamespace element); DECL_XMLOBJECT_SIMPLE(SAML_API,SourceID,ID,SAML 1.x Metadata Profile SourceID element); - BEGIN_XMLOBJECT(SAML_API,localizedNameType,xmltooling::SimpleElement,SAML 2.0 localizedNameType type); + BEGIN_XMLOBJECT(SAML_API,localizedNameType,xmltooling::XMLObject,SAML 2.0 localizedNameType type); DECL_STRING_ATTRIB(Lang,LANG); /** localizedNameType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,localizedURIType,xmltooling::SimpleElement,SAML 2.0 localizedURIType type); + BEGIN_XMLOBJECT(SAML_API,localizedURIType,xmltooling::XMLObject,SAML 2.0 localizedURIType type); DECL_STRING_ATTRIB(Lang,LANG); /** localizedURIType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,OrganizationName,localizedNameType,SAML 2.0 OrganizationName element); - DECL_XMLOBJECT_CONTENT(Name); + DECL_SIMPLE_CONTENT(Name); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,OrganizationDisplayName,localizedNameType,SAML 2.0 OrganizationDisplayName element); - DECL_XMLOBJECT_CONTENT(Name); + DECL_SIMPLE_CONTENT(Name); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,OrganizationURL,localizedURIType,SAML 2.0 OrganizationURL element); - DECL_XMLOBJECT_CONTENT(URL); + DECL_SIMPLE_CONTENT(URL); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Extensions,xmltooling::ElementProxy,SAML 2.0 Extensions element); @@ -147,9 +137,9 @@ namespace opensaml { static const XMLCh CONTACT_OTHER[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,AdditionalMetadataLocation,xmltooling::SimpleElement,SAML 2.0 AdditionalMetadataLocation element); + BEGIN_XMLOBJECT(SAML_API,AdditionalMetadataLocation,xmltooling::XMLObject,SAML 2.0 AdditionalMetadataLocation element); DECL_STRING_ATTRIB(Namespace,NAMESPACE); - DECL_XMLOBJECT_CONTENT(Location); + DECL_SIMPLE_CONTENT(Location); /** AdditionalMetadataLocationType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; @@ -234,11 +224,11 @@ namespace opensaml { END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,ServiceName,localizedNameType,SAML 2.0 ServiceName element); - DECL_XMLOBJECT_CONTENT(Name); + DECL_SIMPLE_CONTENT(Name); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,ServiceDescription,localizedNameType,SAML 2.0 ServiceDescription element); - DECL_XMLOBJECT_CONTENT(Description); + DECL_SIMPLE_CONTENT(Description); END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,RequestedAttribute,saml2::Attribute,SAML 2.0 RequestedAttribute element); diff --git a/saml/saml2/metadata/impl/MetadataImpl.cpp b/saml/saml2/metadata/impl/MetadataImpl.cpp index f8eab77..5548964 100644 --- a/saml/saml2/metadata/impl/MetadataImpl.cpp +++ b/saml/saml2/metadata/impl/MetadataImpl.cpp @@ -24,7 +24,6 @@ #include "exceptions.h" #include "saml2/metadata/Metadata.h" -#include #include #include #include @@ -66,7 +65,6 @@ namespace opensaml { class SAML_DLLLOCAL localizedNameTypeImpl : public virtual localizedNameType, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -97,7 +95,6 @@ namespace opensaml { } IMPL_XMLOBJECT_CLONE(localizedNameType); - IMPL_XMLOBJECT_CONTENT; IMPL_STRING_ATTRIB(Lang); protected: @@ -113,7 +110,6 @@ namespace opensaml { class SAML_DLLLOCAL localizedURITypeImpl : public virtual localizedURIType, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -144,7 +140,6 @@ namespace opensaml { } IMPL_XMLOBJECT_CLONE(localizedURIType); - IMPL_XMLOBJECT_CONTENT; IMPL_STRING_ATTRIB(Lang); protected: @@ -305,7 +300,8 @@ namespace opensaml { } OrganizationImpl(const OrganizationImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getExtensions()) setExtensions(src.getExtensions()->cloneExtensions()); @@ -392,7 +388,8 @@ namespace opensaml { } ContactPersonImpl(const ContactPersonImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getExtensions()) setExtensions(src.getExtensions()->cloneExtensions()); @@ -459,7 +456,6 @@ namespace opensaml { class SAML_DLLLOCAL AdditionalMetadataLocationImpl : public virtual AdditionalMetadataLocation, public AbstractSimpleElement, - public AbstractChildlessElement, public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller @@ -484,7 +480,6 @@ namespace opensaml { } IMPL_XMLOBJECT_CLONE(AdditionalMetadataLocation); - IMPL_XMLOBJECT_CONTENT; IMPL_STRING_ATTRIB(Namespace); protected: @@ -520,7 +515,8 @@ namespace opensaml { init(); } - KeyDescriptorImpl(const KeyDescriptorImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + KeyDescriptorImpl(const KeyDescriptorImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setUse(src.getUse()); if (src.getKeyInfo()) @@ -909,7 +905,8 @@ namespace opensaml { } RoleDescriptorImpl(const RoleDescriptorImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setProtocolSupportEnumeration(src.getProtocolSupportEnumeration()); @@ -1257,7 +1254,8 @@ namespace opensaml { } RequestedAttributeImpl(const RequestedAttributeImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setName(src.getName()); setNameFormat(src.getNameFormat()); @@ -1352,7 +1350,7 @@ namespace opensaml { } AttributeConsumingServiceImpl(const AttributeConsumingServiceImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setIndex(src.m_Index); isDefault(src.m_isDefault); @@ -1880,7 +1878,8 @@ namespace opensaml { } AffiliationDescriptorImpl(const AffiliationDescriptorImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setAffiliationOwnerID(src.getAffiliationOwnerID()); @@ -2025,7 +2024,8 @@ namespace opensaml { } EntityDescriptorImpl(const EntityDescriptorImpl& src) - : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), + AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setEntityID(src.getEntityID()); @@ -2340,7 +2340,8 @@ namespace opensaml { init(); } - EntitiesDescriptorImpl(const EntitiesDescriptorImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { + EntitiesDescriptorImpl(const EntitiesDescriptorImpl& src) + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setID(src.getID()); setName(src.getName()); diff --git a/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp b/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp index 36e1a29..5516158 100644 --- a/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp +++ b/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp @@ -24,6 +24,8 @@ #include "exceptions.h" #include "saml2/metadata/Metadata.h" +#include + using namespace opensaml::saml2md; using namespace opensaml::saml2; using namespace opensaml; diff --git a/samltest/data/saml2/binding/SAML2Response.xml b/samltest/data/saml2/binding/SAML2Response.xml index 78e9c09..17907f8 100644 --- a/samltest/data/saml2/binding/SAML2Response.xml +++ b/samltest/data/saml2/binding/SAML2Response.xml @@ -1,6 +1,12 @@ https://idp.example.org/https://idp.example.org/John Doefoo \ No newline at end of file + IssueInstant="1970-01-02T01:01:02.100Z" Version="2.0" ID="rident" Destination="https://sp.example.org/SAML/POST"> + https://idp.example.org/ + + + https://idp.example.org/ + John Doe + + foo + + + diff --git a/samltest/data/signature/SAML1Assertion.xml b/samltest/data/signature/SAML1Assertion.xml index 7e0b127..f2a85fd 100644 --- a/samltest/data/signature/SAML1Assertion.xml +++ b/samltest/data/signature/SAML1Assertion.xml @@ -31,4 +31,5 @@ CQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMRcwFQYDVQQDEw5zcC5leGFt cGxlLm9yZ4IJAKk8t1hYcMkhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD gYEAMFq/UeSQyngE0GpZueyD2UW0M358uhseYOgGEIfm+qXIFQF6MYwNoX7WFzhC LJZ2E6mEvZZFHCHUtl7mGDvsRwgZ85YCtRbvleEpqfgNQToto9pLYe+X6vvH9Z6p -gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0= \ No newline at end of file +gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0= + \ No newline at end of file diff --git a/samltest/data/signature/SAML1Request.xml b/samltest/data/signature/SAML1Request.xml index e40d5e2..ee47ffc 100644 --- a/samltest/data/signature/SAML1Request.xml +++ b/samltest/data/signature/SAML1Request.xml @@ -28,4 +28,5 @@ CQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMRcwFQYDVQQDEw5zcC5leGFt cGxlLm9yZ4IJAKk8t1hYcMkhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD gYEAMFq/UeSQyngE0GpZueyD2UW0M358uhseYOgGEIfm+qXIFQF6MYwNoX7WFzhC LJZ2E6mEvZZFHCHUtl7mGDvsRwgZ85YCtRbvleEpqfgNQToto9pLYe+X6vvH9Z6p -gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0=John Doe +gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0= +John Doe diff --git a/samltest/data/signature/SAML1Response.xml b/samltest/data/signature/SAML1Response.xml index 281957b..2fa164a 100644 --- a/samltest/data/signature/SAML1Response.xml +++ b/samltest/data/signature/SAML1Response.xml @@ -8,12 +8,12 @@ -WjLtIcoArwwdHVOks5QnbnFuE9g= +58F0tbYfjW1fw6qvD3SFvhQlg/o= -cwC985/W+J8HrkDgMK1fYPfRP7e6aAAKJM/8rTWbOnI6feF8jrsQhSQ9qBon5o46 -4eHMDYAcH4xd9rGPeYib4jjH2hAPAF0rqLX1FWNTZgS+lJQFhhj5Sys0Ja6C0wsx -0CoEWraR/IiDpRwnz9gGj2jGnfokfBdsLiomuxC2ZNY= +C9U3y5+GJYi+e2kHn2VBYFuE0L/CVDMxiRygammXuDiOo3jQslf8GifLDxinnI33 ++sky4f/Kv5mjVFd6aYs9ad3JANzuDF6zdMBVnQkrCAkfzKXjif1coXZWIcDc0To9 +qp6fegEuvFJrJyEJw9xyKkc93Mk6+gXLyxe1oynOkkI= MIICjzCCAfigAwIBAgIJAKk8t1hYcMkhMA0GCSqGSIb3DQEBBAUAMDoxCzAJBgNV BAYTAlVTMRIwEAYDVQQKEwlJbnRlcm5ldDIxFzAVBgNVBAMTDnNwLmV4YW1wbGUu b3JnMB4XDTA1MDYyMDE1NDgzNFoXDTMyMTEwNTE1NDgzNFowOjELMAkGA1UEBhMC @@ -27,7 +27,8 @@ CQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMRcwFQYDVQQDEw5zcC5leGFt cGxlLm9yZ4IJAKk8t1hYcMkhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD gYEAMFq/UeSQyngE0GpZueyD2UW0M358uhseYOgGEIfm+qXIFQF6MYwNoX7WFzhC LJZ2E6mEvZZFHCHUtl7mGDvsRwgZ85YCtRbvleEpqfgNQToto9pLYe+X6vvH9Z6p -gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0= +gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0= + diff --git a/samltest/data/signature/SAML2Assertion.xml b/samltest/data/signature/SAML2Assertion.xml index ef2d5d5..63ab75a 100644 --- a/samltest/data/signature/SAML2Assertion.xml +++ b/samltest/data/signature/SAML2Assertion.xml @@ -28,5 +28,6 @@ CQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMRcwFQYDVQQDEw5zcC5leGFt cGxlLm9yZ4IJAKk8t1hYcMkhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD gYEAMFq/UeSQyngE0GpZueyD2UW0M358uhseYOgGEIfm+qXIFQF6MYwNoX7WFzhC LJZ2E6mEvZZFHCHUtl7mGDvsRwgZ85YCtRbvleEpqfgNQToto9pLYe+X6vvH9Z6p -gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0=John DoeJohn Doemethod \ No newline at end of file diff --git a/samltest/saml1/binding/SAML1ArtifactTest.h b/samltest/saml1/binding/SAML1ArtifactTest.h index b36c040..f6abaa7 100644 --- a/samltest/saml1/binding/SAML1ArtifactTest.h +++ b/samltest/saml1/binding/SAML1ArtifactTest.h @@ -17,8 +17,10 @@ #include "binding.h" #include +#include #include #include +#include using namespace opensaml::saml1p; using namespace opensaml::saml1; diff --git a/samltest/saml2/binding/SAML2ArtifactTest.h b/samltest/saml2/binding/SAML2ArtifactTest.h index f555e13..1d08453 100644 --- a/samltest/saml2/binding/SAML2ArtifactTest.h +++ b/samltest/saml2/binding/SAML2ArtifactTest.h @@ -19,6 +19,7 @@ #include #include #include +#include using namespace opensaml::saml2p; using namespace opensaml::saml2; diff --git a/samltest/signature/SAML1RequestTest.h b/samltest/signature/SAML1RequestTest.h index 0ebd828..6b63d1b 100644 --- a/samltest/signature/SAML1RequestTest.h +++ b/samltest/signature/SAML1RequestTest.h @@ -16,6 +16,7 @@ #include "signature/SAMLSignatureTestBase.h" +#include #include #include diff --git a/samltest/signature/SAML1ResponseTest.h b/samltest/signature/SAML1ResponseTest.h index f975cc1..c52354c 100644 --- a/samltest/signature/SAML1ResponseTest.h +++ b/samltest/signature/SAML1ResponseTest.h @@ -16,6 +16,7 @@ #include "signature/SAMLSignatureTestBase.h" +#include #include #include @@ -115,7 +116,7 @@ public: const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); auto_ptr response2(b->buildFromDocument(doc)); - assertEquals("Unmarshalled request does not match", expectedChildElementsDOM, response2.get(), false); + assertEquals("Unmarshalled response does not match", expectedChildElementsDOM, response2.get(), false); try { SignatureProfileValidator spv; -- 2.1.4