#include "saml2/metadata/Metadata.h"
#include "saml2/metadata/MetadataFilter.h"
-#include <boost/ptr_container/ptr_set.hpp>
#include <xmltooling/logging.h>
-#include <xmltooling/util/NDC.h>
using namespace opensaml::saml2md;
using namespace xmltooling::logging;
using namespace xmltooling;
-using namespace boost;
using namespace std;
namespace opensaml {
void doFilter(EntitiesDescriptor& entities) const;
bool m_removeRolelessEntityDescriptors, m_removeEmptyEntitiesDescriptors;
- ptr_set<xmltooling::QName> m_roles;
+ set<xmltooling::QName> m_roles;
bool m_idp, m_sp, m_authn, m_attr, m_pdp, m_authnq, m_attrq, m_authzq;
};
else if (*q == AuthzDecisionQueryDescriptorType::TYPE_QNAME)
m_authzq = true;
else
- m_roles.insert(q);
+ m_roles.insert(*q);
}
e = XMLHelper::getNextSiblingElement(e, RetainedRole);
}
void EntityRoleMetadataFilter::doFilter(XMLObject& xmlObject) const
{
-#ifdef _DEBUG
- NDC ndc("doFilter");
-#endif
-
- try {
- doFilter(dynamic_cast<EntitiesDescriptor&>(xmlObject));
- return;
- }
- catch (bad_cast&) {
- }
-
- try {
- doFilter(dynamic_cast<EntityDescriptor&>(xmlObject));
- return;
+ EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
+ if (group) {
+ doFilter(*group);
}
- catch (bad_cast&) {
+ else {
+ EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&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.size(); ) {