X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml1%2Fcore%2FAssertions.h;h=b4cf7538adf789acea6631b4c691442a0951ea7b;hb=0703fa970c8d1f15600ce3fd1b350bdb90930bb9;hp=e9af40d98f4aae0c5eeb43e1170d72182e09da92;hpb=9f703166a2dac77dcd74b43c2380b3f766938c50;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml1/core/Assertions.h b/saml/saml1/core/Assertions.h index e9af40d..b4cf753 100644 --- a/saml/saml1/core/Assertions.h +++ b/saml/saml1/core/Assertions.h @@ -15,41 +15,40 @@ */ /** - * @file Assertions.h + * @file saml/saml1/core/Assertions.h * * XMLObjects representing the SAML 1.x Assertions schema */ -#ifndef __saml_assertions_h__ -#define __saml_assertions_h__ +#ifndef __saml1_assertions_h__ +#define __saml1_assertions_h__ -#include +#include #include + #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) + DECL_XMLOBJECTBUILDER(SAML_API,cname,samlconstants::SAML1_NS,samlconstants::SAML1_PREFIX) namespace opensaml { /** - * @namespace saml1 - * SAML 1.x class namespace + * @namespace opensaml::saml1 + * SAML 1.x assertion namespace */ namespace saml1 { // Forward references 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,AssertionIDReference,AssertionID,SAML 1.x AssertionIDReference element); + DECL_XMLOBJECT_SIMPLE(SAML_API,Audience,AudienceURI,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); @@ -67,8 +66,8 @@ namespace opensaml { 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_DATETIME_ATTRIB(NotBefore,NOTBEFORE); + DECL_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER); DECL_TYPED_CHILDREN(AudienceRestrictionCondition); DECL_TYPED_CHILDREN(DoNotCacheCondition); DECL_TYPED_CHILDREN(Condition); @@ -76,28 +75,24 @@ 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[]; END_XMLOBJECT; - /** SAML 1.x SubjectConfirmationData element */ - class SAML_API SubjectConfirmationData : public virtual xmltooling::ElementProxy, - public virtual xmltooling::AttributeExtensibleXMLObject, - public virtual xmltooling::ValidatingXMLObject - { - protected: - SubjectConfirmationData() {} - public: - virtual ~SubjectConfirmationData() {} - /** Type-specific clone method. */ - virtual SubjectConfirmationData* cloneSubjectConfirmationData() const=0; - /** Element local name. */ - static const XMLCh LOCAL_NAME[]; - }; + BEGIN_XMLOBJECT2(SAML_API,SubjectConfirmationData,xmltooling::ElementProxy,xmltooling::AttributeExtensibleXMLObject,SAML 1.x SubjectConfirmationData element); + END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,SubjectConfirmation,xmltooling::XMLObject,SAML 1.x SubjectConfirmation element); DECL_TYPED_CHILDREN(ConfirmationMethod); @@ -105,6 +100,16 @@ namespace opensaml { DECL_TYPED_FOREIGN_CHILD(KeyInfo,xmlsignature); /** SubjectConfirmationType local name */ static const XMLCh TYPE_NAME[]; + /** Deprecated SAML 1.0 Artifact confirmation method */ + static const XMLCh ARTIFACT01[]; + /** Artifact confirmation method */ + 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[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Subject,xmltooling::XMLObject,SAML 1.x Subject element); @@ -145,11 +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(Value); + 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[]; + /** Read/Write/Execute/Delete/Control with Negation Action Namespace */ + static const XMLCh RWEDC_ACTION_NAMESPACE[]; + /** Get/Head/Put/Post Action Namespace */ + static const XMLCh GHPP_ACTION_NAMESPACE[]; + /** UNIX File Permissions Action Namespace */ + static const XMLCh UNIX_ACTION_NAMESPACE[]; END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,Evidence,xmltooling::XMLObject,SAML 1.x Evidence element); @@ -187,20 +200,8 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - /** SAML 1.x AttributeValue element */ - class SAML_API AttributeValue : public virtual xmltooling::ElementProxy, - public virtual xmltooling::AttributeExtensibleXMLObject, - public virtual xmltooling::ValidatingXMLObject - { - protected: - AttributeValue() {} - public: - virtual ~AttributeValue() {} - /** Type-specific clone method. */ - virtual AttributeValue* cloneAttributeValue() const=0; - /** Element local name. */ - static const XMLCh LOCAL_NAME[]; - }; + BEGIN_XMLOBJECT2(SAML_API,AttributeValue,xmltooling::ElementProxy,xmltooling::AttributeExtensibleXMLObject,SAML 1.x AttributeValue element); + END_XMLOBJECT; BEGIN_XMLOBJECT(SAML_API,AttributeStatement,SubjectStatement,SAML 1.x AttributeStatement element); DECL_TYPED_CHILDREN(Attribute); @@ -216,7 +217,7 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,Assertion,xmltooling::XMLObject,SAML 1.x Assertion element); + BEGIN_XMLOBJECT(SAML_API,Assertion,SignableObject,SAML 1.x Assertion element); DECL_INTEGER_ATTRIB(MinorVersion,MINORVERSION); DECL_STRING_ATTRIB(AssertionID,ASSERTIONID); DECL_STRING_ATTRIB(Issuer,ISSUER); @@ -257,10 +258,10 @@ namespace opensaml { DECL_SAML1OBJECTBUILDER(SubjectLocality); /** - * Registers builders and validators for Assertion classes into the runtime. + * Registers builders and validators for SAML 1.x Assertion classes into the runtime. */ void SAML_API registerAssertionClasses(); }; }; -#endif /* __saml_assertions_h__ */ +#endif /* __saml1_assertions_h__ */