X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FMetadataSchemaValidators.cpp;h=79cf31e762fc1f3afaa206643176026e18a569c2;hp=36e1a29bbae3c0ca1580f2e22a076bcb7407ecb1;hb=1d1ca408cff7d1efa1cff500e56b33c897e2c65b;hpb=5263186a620ca02913980ad2d35d4045844e7a05 diff --git a/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp b/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp index 36e1a29..79cf31e 100644 --- a/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp +++ b/saml/saml2/metadata/impl/MetadataSchemaValidators.cpp @@ -1,5 +1,5 @@ /* -* Copyright 2001-2006 Internet2 +* Copyright 2001-2007 Internet2 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,11 +24,15 @@ #include "exceptions.h" #include "saml2/metadata/Metadata.h" +#include + using namespace opensaml::saml2md; using namespace opensaml::saml2; using namespace opensaml; using namespace xmltooling; using namespace std; +using samlconstants::SAML20MD_NS; +using samlconstants::SAML20MD_QUERY_EXT_NS; namespace opensaml { namespace saml2md { @@ -70,7 +74,7 @@ namespace opensaml { public: void operator()(const XMLObject* xmlObject) const { const XMLCh* ns=xmlObject->getElementQName().getNamespaceURI(); - if (XMLString::equals(ns,SAMLConstants::SAML20MD_NS) || !ns || !*ns) { + if (XMLString::equals(ns,SAML20MD_NS) || !ns || !*ns) { throw ValidationException( "Object contains an illegal extension child element ($1).", params(1,xmlObject->getElementQName().toString().c_str()) @@ -82,7 +86,7 @@ namespace opensaml { BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Extensions); if (!ptr->hasChildren()) throw ValidationException("Extensions must have at least one child element."); - const list& anys=ptr->getXMLObjects(); + const vector& anys=ptr->getUnknownXMLObjects(); for_each(anys.begin(),anys.end(),checkWildcardNS()); END_XMLOBJECTVALIDATOR; @@ -123,7 +127,7 @@ namespace opensaml { BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,EndpointType); XMLOBJECTVALIDATOR_REQUIRE(EndpointType,Binding); XMLOBJECTVALIDATOR_REQUIRE(EndpointType,Location); - const list& anys=ptr->getXMLObjects(); + const vector& anys=ptr->getUnknownXMLObjects(); for_each(anys.begin(),anys.end(),checkWildcardNS()); END_XMLOBJECTVALIDATOR; @@ -245,21 +249,21 @@ namespace opensaml { }; #define REGISTER_ELEMENT(cname) \ - q=QName(SAMLConstants::SAML20MD_NS,cname::LOCAL_NAME); \ + q=QName(SAML20MD_NS,cname::LOCAL_NAME); \ XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \ SchemaValidators.registerValidator(q,new cname##SchemaValidator()) #define REGISTER_TYPE(cname) \ - q=QName(SAMLConstants::SAML20MD_NS,cname::TYPE_NAME); \ + q=QName(SAML20MD_NS,cname::TYPE_NAME); \ XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \ SchemaValidators.registerValidator(q,new cname##SchemaValidator()) #define REGISTER_ELEMENT_NOVAL(cname) \ - q=QName(SAMLConstants::SAML20MD_NS,cname::LOCAL_NAME); \ + q=QName(SAML20MD_NS,cname::LOCAL_NAME); \ XMLObjectBuilder::registerBuilder(q,new cname##Builder()); #define REGISTER_TYPE_NOVAL(cname) \ - q=QName(SAMLConstants::SAML20MD_NS,cname::TYPE_NAME); \ + q=QName(SAML20MD_NS,cname::TYPE_NAME); \ XMLObjectBuilder::registerBuilder(q,new cname##Builder()); void opensaml::saml2md::registerMetadataClasses() { @@ -322,23 +326,26 @@ void opensaml::saml2md::registerMetadataClasses() { REGISTER_TYPE(RequestedAttribute); REGISTER_TYPE(SPSSODescriptor); - q=QName(SAMLConstants::SAML1MD_NS,SourceID::LOCAL_NAME); + q=QName(SAML20MD_NS,xmlencryption::EncryptionMethod::LOCAL_NAME); + XMLObjectBuilder::registerBuilder(q,new xmlencryption::EncryptionMethodBuilder()); + + q=QName(samlconstants::SAML1MD_NS,SourceID::LOCAL_NAME); XMLObjectBuilder::registerBuilder(q,new SourceIDBuilder()); SchemaValidators.registerValidator(q,new SourceIDSchemaValidator()); - q=QName(SAMLConstants::SAML20MD_QUERY_EXT_NS,ActionNamespace::LOCAL_NAME); + q=QName(SAML20MD_QUERY_EXT_NS,ActionNamespace::LOCAL_NAME); XMLObjectBuilder::registerBuilder(q,new ActionNamespaceBuilder()); SchemaValidators.registerValidator(q,new ActionNamespaceSchemaValidator()); - q=QName(SAMLConstants::SAML20MD_QUERY_EXT_NS,AuthnQueryDescriptorType::TYPE_NAME); + q=QName(SAML20MD_QUERY_EXT_NS,AuthnQueryDescriptorType::TYPE_NAME); XMLObjectBuilder::registerBuilder(q,new AuthnQueryDescriptorTypeBuilder()); SchemaValidators.registerValidator(q,new RoleDescriptorSchemaValidator()); - q=QName(SAMLConstants::SAML20MD_QUERY_EXT_NS,AttributeQueryDescriptorType::TYPE_NAME); + q=QName(SAML20MD_QUERY_EXT_NS,AttributeQueryDescriptorType::TYPE_NAME); XMLObjectBuilder::registerBuilder(q,new AttributeQueryDescriptorTypeBuilder()); SchemaValidators.registerValidator(q,new RoleDescriptorSchemaValidator()); - q=QName(SAMLConstants::SAML20MD_QUERY_EXT_NS,AuthzDecisionQueryDescriptorType::TYPE_NAME); + q=QName(SAML20MD_QUERY_EXT_NS,AuthzDecisionQueryDescriptorType::TYPE_NAME); XMLObjectBuilder::registerBuilder(q,new AuthzDecisionQueryDescriptorTypeBuilder()); SchemaValidators.registerValidator(q,new RoleDescriptorSchemaValidator()); }