X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityRoleMetadataFilter.cpp;fp=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityRoleMetadataFilter.cpp;h=cce0b3906a727395a73779b6d9ee84b3d41cbc26;hb=61d9603505ce049adfb3f6a476252505e3d5464b;hp=c6feb6d8b1ae4348a3634ea63efb4680e88d804c;hpb=c46bfc50c7fec71e9a6aaad36fda91f7ce2b273b;p=shibboleth%2Fopensaml2.git diff --git a/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp b/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp index c6feb6d..cce0b39 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);