X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml1%2Fcore%2FAssertions.h;h=23cb0ef07a1178ed5893c4fd3b2bd187af01469f;hp=7dea433ebf1234c00a6d52a39970cd789cc16aec;hb=096d14037ebd2271f8e116d13f742be853435816;hpb=01832f09c095512baad6210854ad3a3c6a8d9622 diff --git a/saml/saml1/core/Assertions.h b/saml/saml1/core/Assertions.h index 7dea433..23cb0ef 100644 --- a/saml/saml1/core/Assertions.h +++ b/saml/saml1/core/Assertions.h @@ -24,14 +24,17 @@ #define __saml_assertions_h__ #include -#include +#include #include #include #include +#include +#include +#include #include #define DECL_SAML1OBJECTBUILDER(cname) \ - DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::XMLConstants::SAML1_NS,opensaml::XMLConstants::SAML1_PREFIX) + DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML1_NS,opensaml::SAMLConstants::SAML1_PREFIX) namespace opensaml { @@ -40,19 +43,136 @@ namespace opensaml { * SAML 1.x class namespace */ namespace saml1 { + + class SAML_API Assertion; + DECL_XMLOBJECT_SIMPLE(SAML_API,AssertionIDReference,Reference,SAML 1.x AssertionIDReference element); DECL_XMLOBJECT_SIMPLE(SAML_API,Audience,Uri,SAML 1.x Audience element); DECL_XMLOBJECT_SIMPLE(SAML_API,ConfirmationMethod,Method,SAML 1.x ConfirmationMethod element); + BEGIN_XMLOBJECT(SAML_API,Condition,xmltooling::XMLObject,SAML 1.x Condition element); + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,AudienceRestrictionCondition,Condition,SAML 1.x AudienceRestrictionCondition element); + DECL_TYPED_CHILDREN(Audience); + /** AudienceRestrictionConditionType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,DoNotCacheCondition,Condition,SAML 1.x DoNotCacheCondition element); + /** DoNotCacheConditionType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,Conditions,xmltooling::XMLObject,SAML 1.x Conditions element); + DECL_XMLOBJECT_ATTRIB(NotBefore,NOTBEFORE,xmltooling::DateTime); + DECL_XMLOBJECT_ATTRIB(NotOnOrAfter,NOTONORAFTER,xmltooling::DateTime); + DECL_TYPED_CHILDREN(AudienceRestrictionCondition); + DECL_TYPED_CHILDREN(DoNotCacheCondition); + DECL_TYPED_CHILDREN(Condition); + /** ConditionsType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,NameIdentifier,xmltooling::SimpleElement,SAML 1.x NameIdentifier element); + DECL_STRING_ATTRIB(NameQualifier,NAMEQUALIFIER); + DECL_STRING_ATTRIB(Format,FORMAT); + /** NameIdentifierType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,SubjectConfirmationData,xmltooling::ElementProxy,SAML 1.x SubjectConfirmationData element); + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,SubjectConfirmation,xmltooling::XMLObject,SAML 1.x SubjectConfirmation element); + DECL_TYPED_CHILDREN(ConfirmationMethod); + DECL_XMLOBJECT_CHILD(SubjectConfirmationData); + DECL_TYPED_FOREIGN_CHILD(KeyInfo,xmlsignature); + /** SubjectConfirmationType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,Subject,xmltooling::XMLObject,SAML 1.x Subject element); + DECL_TYPED_CHILD(NameIdentifier); + DECL_TYPED_CHILD(SubjectConfirmation); + /** SubjectType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,Statement,xmltooling::XMLObject,SAML 1.x Statement element); + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,SubjectStatement,Statement,SAML 1.x SubjectStatement element); + DECL_TYPED_CHILD(Subject); + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,SubjectLocality,xmltooling::XMLObject,SAML 1.x SubjectLocality element); + DECL_STRING_ATTRIB(IPAddress,IPADDRESS); + DECL_STRING_ATTRIB(DNSAddress,DNSADDRESS); + /** SubjectLocality local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,AuthorityBinding,xmltooling::XMLObject,SAML 1.x AuthorityBinding element); + DECL_XMLOBJECT_ATTRIB(AuthorityKind,AUTHORITYKIND,xmltooling::QName); + DECL_STRING_ATTRIB(Location,LOCATION); + DECL_STRING_ATTRIB(Binding,BINDING); + /** AuthorityBinding local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,AuthenticationStatement,SubjectStatement,SAML 1.x AuthenticationStatement element); + DECL_STRING_ATTRIB(AuthenticationMethod,AUTHENTICATIONMETHOD); + DECL_DATETIME_ATTRIB(AuthenticationInstant,AUTHENTICATIONINSTANT); + DECL_TYPED_CHILD(SubjectLocality); + DECL_TYPED_CHILDREN(AuthorityBinding); + /** AuthenticationStatement local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,Advice,xmltooling::XMLObject,SAML 1.x Advice element); + DECL_TYPED_CHILDREN(AssertionIDReference); + DECL_TYPED_CHILDREN(Assertion); + DECL_XMLOBJECT_CHILDREN(Other); + /** AdviceType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + BEGIN_XMLOBJECT(SAML_API,Assertion,xmltooling::XMLObject,SAML 1.x Assertion element); + DECL_INTEGER_ATTRIB(MinorVersion,MINORVERSION); + DECL_STRING_ATTRIB(AssertionID,ASSERTIONID); + DECL_STRING_ATTRIB(Issuer,ISSUER); + DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT); + DECL_TYPED_CHILD(Conditions); + DECL_TYPED_CHILD(Advice); + DECL_TYPED_CHILDREN(Statement); + DECL_TYPED_CHILDREN(SubjectStatement); + DECL_TYPED_CHILDREN(AuthenticationStatement); + DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature); + /** AssertionType local name */ + static const XMLCh TYPE_NAME[]; + END_XMLOBJECT; + + DECL_SAML1OBJECTBUILDER(Advice); + DECL_SAML1OBJECTBUILDER(Assertion); DECL_SAML1OBJECTBUILDER(AssertionIDReference); DECL_SAML1OBJECTBUILDER(Audience); + DECL_SAML1OBJECTBUILDER(AudienceRestrictionCondition); + DECL_SAML1OBJECTBUILDER(AuthenticationStatement); + DECL_SAML1OBJECTBUILDER(AuthorityBinding); + DECL_SAML1OBJECTBUILDER(DoNotCacheCondition); + DECL_SAML1OBJECTBUILDER(Conditions); DECL_SAML1OBJECTBUILDER(ConfirmationMethod); + DECL_SAML1OBJECTBUILDER(NameIdentifier); + DECL_SAML1OBJECTBUILDER(Subject); + DECL_SAML1OBJECTBUILDER(SubjectConfirmation); + DECL_SAML1OBJECTBUILDER(SubjectConfirmationData); + DECL_SAML1OBJECTBUILDER(SubjectLocality); -#ifdef SAML_DECLARE_VALIDATORS - XMLOBJECTVALIDATOR_SIMPLE(SAML_DLLLOCAL,AssertionIDReference); - XMLOBJECTVALIDATOR_SIMPLE(SAML_DLLLOCAL,Audience); - XMLOBJECTVALIDATOR_SIMPLE(SAML_DLLLOCAL,ConfirmationMethod); -#endif + /** + * Registers builders and validators for Assertion classes into the runtime. + */ + void SAML_API registerAssertionClasses(); }; };