X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityRoleMetadataFilter.cpp;h=3f4b9acf6fd4c188dab27071ad30d010ff51c219;hp=c6feb6d8b1ae4348a3634ea63efb4680e88d804c;hb=1462057b3b9ae7e165d34d988e30b14c213672ca;hpb=f1208cd2f514700244816377443c4951dc22c848 diff --git a/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp b/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp index c6feb6d..3f4b9ac 100644 --- a/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp +++ b/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp @@ -29,7 +29,6 @@ #include "saml2/metadata/MetadataFilter.h" #include -#include using namespace opensaml::saml2md; using namespace xmltooling::logging; @@ -95,7 +94,7 @@ EntityRoleMetadataFilter::EntityRoleMetadataFilter(const DOMElement* e) else if (*q == AuthzDecisionQueryDescriptorType::TYPE_QNAME) m_authzq = true; else - m_roles.insert(*q.get()); + m_roles.insert(*q); } e = XMLHelper::getNextSiblingElement(e, RetainedRole); } @@ -103,33 +102,27 @@ EntityRoleMetadataFilter::EntityRoleMetadataFilter(const DOMElement* e) void EntityRoleMetadataFilter::doFilter(XMLObject& xmlObject) const { -#ifdef _DEBUG - NDC ndc("doFilter"); -#endif - - try { - doFilter(dynamic_cast(xmlObject)); - return; - } - catch (bad_cast) { - } - - try { - doFilter(dynamic_cast(xmlObject)); - return; + EntitiesDescriptor* group = dynamic_cast(&xmlObject); + if (group) { + doFilter(*group); } - catch (bad_cast) { + else { + EntityDescriptor* entity = dynamic_cast(&xmlObject); + if (entity) { + doFilter(*entity); + } + else { + throw MetadataFilterException(ENTITYROLE_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter."); + } } - - throw MetadataFilterException("EntityRoleWhiteList MetadataFilter was given an improper metadata instance to filter."); } void EntityRoleMetadataFilter::doFilter(EntitiesDescriptor& entities) const { - Category& log=Category::getInstance(SAML_LOGCAT".MetadataFilter.EntityRoleWhiteList"); + Category& log=Category::getInstance(SAML_LOGCAT ".MetadataFilter." ENTITYROLE_METADATA_FILTER); - VectorOf(EntityDescriptor) v=entities.getEntityDescriptors(); - for (VectorOf(EntityDescriptor)::size_type i=0; i(*v[i]); @@ -151,8 +144,8 @@ void EntityRoleMetadataFilter::doFilter(EntitiesDescriptor& entities) const i++; } - VectorOf(EntitiesDescriptor) groups=entities.getEntitiesDescriptors(); - for (VectorOf(EntitiesDescriptor)::size_type j=0; jgetEntitiesDescriptors().empty() && group->getEntityDescriptors().empty()) { @@ -191,7 +184,7 @@ void EntityRoleMetadataFilter::doFilter(EntityDescriptor& entity) const entity.getAuthzDecisionQueryDescriptorTypes().clear(); VectorOf(RoleDescriptor) v = entity.getRoleDescriptors(); - for (VectorOf(RoleDescriptor)::size_type i=0; igetSchemaType(); if (!type || m_roles.find(*type) != m_roles.end()) v.erase(v.begin() + i);