X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fcore%2FProtocols.h;h=0688437614eb3d50bc7352b9f1bb0cc1df8f9272;hb=9cba614f77ba4b85c69d706634d0d6c368f7deaa;hp=fb02de7342bddc35a03f1c9286408a681fb36153;hpb=e8d75900802dfa84c06290f88e365fd355ce6881;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/core/Protocols.h b/saml/saml2/core/Protocols.h index fb02de7..0688437 100644 --- a/saml/saml2/core/Protocols.h +++ b/saml/saml2/core/Protocols.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Internet2 + * Copyright 2001-2009 Internet2 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,10 @@ #include +#include + #define DECL_SAML2POBJECTBUILDER(cname) \ - DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20P_NS,opensaml::SAMLConstants::SAML20P_PREFIX) + DECL_XMLOBJECTBUILDER(SAML_API,cname,samlconstants::SAML20P_NS,samlconstants::SAML20P_PREFIX) namespace opensaml { @@ -38,26 +40,24 @@ namespace opensaml { DECL_XMLOBJECT_SIMPLE(SAML_API,Artifact,Artifact,SAML 2.0 Artifact element); DECL_XMLOBJECT_SIMPLE(SAML_API,GetComplete,GetComplete,SAML 2.0 GetComplete element); - DECL_XMLOBJECT_SIMPLE(SAML_API,NewID,NewID,SAML 2.0 NewID element); DECL_XMLOBJECT_SIMPLE(SAML_API,RequesterID,RequesterID,SAML 2.0 RequesterID element); DECL_XMLOBJECT_SIMPLE(SAML_API,SessionIndex,SessionIndex,SAML 2.0 SessionIndex element); DECL_XMLOBJECT_SIMPLE(SAML_API,StatusMessage,Message,SAML 2.0 StatusMessage element); DECL_XMLOBJECT_SIMPLE(SAML_API,RespondTo,Name,SAML 2.0 third-party request RespondTo extension element); - BEGIN_XMLOBJECT(SAML_API,Extensions,xmltooling::ElementProxy,SAML 2.0 protocol Extensions element); + BEGIN_XMLOBJECT(SAML_API,Extensions,xmltooling::ElementExtensibleXMLObject,SAML 2.0 protocol Extensions element); /** ExtensionsType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,RequestAbstractType,SignableObject,SAML 2.0 RequestAbstractType base type); - DECL_STRING_ATTRIB(ID,ID); - DECL_STRING_ATTRIB(Version,VER); - DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT); + BEGIN_XMLOBJECT(SAML_API,RequestAbstractType,saml2::RootObject,SAML 2.0 RequestAbstractType base type); + DECL_INHERITED_STRING_ATTRIB(ID,ID); + DECL_INHERITED_STRING_ATTRIB(Version,VER); + DECL_INHERITED_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT); DECL_STRING_ATTRIB(Destination,DESTINATION); DECL_STRING_ATTRIB(Consent,CONSENT); - DECL_TYPED_FOREIGN_CHILD(Issuer,saml2); - DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature); + DECL_INHERITED_TYPED_FOREIGN_CHILD(Issuer,saml2); DECL_TYPED_CHILD(Extensions); /** RequestAbstractType local name */ static const XMLCh TYPE_NAME[]; @@ -126,8 +126,7 @@ namespace opensaml { /*@{*/ END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,StatusDetail,xmltooling::XMLObject,SAML 2.0 StatusDetail element); - DECL_XMLOBJECT_CHILDREN(Detail); + BEGIN_XMLOBJECT(SAML_API,StatusDetail,xmltooling::ElementExtensibleXMLObject,SAML 2.0 StatusDetail element); /** StatusDetailType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; @@ -140,19 +139,16 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; - BEGIN_XMLOBJECT(SAML_API,StatusResponseType,SignableObject,SAML 2.0 StatusResponseType base type); - DECL_STRING_ATTRIB(ID,ID); + BEGIN_XMLOBJECT(SAML_API,StatusResponseType,saml2::RootObject,SAML 2.0 StatusResponseType base type); + DECL_INHERITED_STRING_ATTRIB(ID,ID); DECL_STRING_ATTRIB(InResponseTo,INRESPONSETO); - DECL_STRING_ATTRIB(Version,VER); - DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT); + DECL_INHERITED_STRING_ATTRIB(Version,VER); + DECL_INHERITED_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT); DECL_STRING_ATTRIB(Destination,DESTINATION); DECL_STRING_ATTRIB(Consent,CONSENT); - - DECL_TYPED_FOREIGN_CHILD(Issuer,saml2); - DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature); + DECL_INHERITED_TYPED_FOREIGN_CHILD(Issuer,saml2); DECL_TYPED_CHILD(Extensions); DECL_TYPED_CHILD(Status); - /** StatusResponseType local name */ static const XMLCh TYPE_NAME[]; END_XMLOBJECT; @@ -174,7 +170,6 @@ namespace opensaml { DECL_STRING_ATTRIB(Comparison,COMPARISON); DECL_TYPED_FOREIGN_CHILDREN(AuthnContextClassRef,saml2); DECL_TYPED_FOREIGN_CHILDREN(AuthnContextDeclRef,saml2); - /** RequestedAuthnContextType local name */ static const XMLCh TYPE_NAME[]; @@ -290,6 +285,10 @@ namespace opensaml { static const XMLCh TYPE_NAME[]; END_XMLOBJECT; + BEGIN_XMLOBJECT(SAML_API,NewID,saml2::EncryptableObject,SAML 2.0 NewID element); + DECL_SIMPLE_CONTENT(NewID); + END_XMLOBJECT; + BEGIN_XMLOBJECT(SAML_API,NewEncryptedID,saml2::EncryptedElementType,SAML 2.0 NewEncryptedID element); END_XMLOBJECT; @@ -388,7 +387,7 @@ namespace opensaml { DECL_SAML2POBJECTBUILDER(StatusMessage); DECL_SAML2POBJECTBUILDER(Terminate); - DECL_XMLOBJECTBUILDER(SAML_API,RespondTo,opensaml::SAMLConstants::SAML20P_THIRDPARTY_EXT_NS,opensaml::SAMLConstants::SAML20P_THIRDPARTY_EXT_PREFIX); + DECL_XMLOBJECTBUILDER(SAML_API,RespondTo,samlconstants::SAML20P_THIRDPARTY_EXT_NS,samlconstants::SAML20P_THIRDPARTY_EXT_PREFIX); /** * Registers builders and validators for SAML 2.0 Protocol classes into the runtime.