X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2Fattribute%2Ffiltering%2Fimpl%2FAndMatchFunctor.cpp;h=d9587d272432fc9724aea70078011e43a26fba38;hb=44efbaf72f94cbaa256fb044aa2a10d47736721b;hp=fc84e253a5448c221cb13e85d39676d1c82bf255;hpb=71dd40b10ff062da51449352ecced4b5a0edde6b;p=shibboleth%2Fcpp-sp.git diff --git a/shibsp/attribute/filtering/impl/AndMatchFunctor.cpp b/shibsp/attribute/filtering/impl/AndMatchFunctor.cpp index fc84e25..d9587d2 100644 --- a/shibsp/attribute/filtering/impl/AndMatchFunctor.cpp +++ b/shibsp/attribute/filtering/impl/AndMatchFunctor.cpp @@ -88,9 +88,9 @@ AndMatchFunctor::AndMatchFunctor(const pairgetAttributeNS(nullptr, _ref)); - if (ref.get() && *ref.get()) { - multimap::const_iterator rule = p.first->getMatchFunctors().find(ref.get()); + string ref = XMLHelper::getAttrString(e, nullptr, _ref); + if (!ref.empty()) { + multimap::const_iterator rule = p.first->getMatchFunctors().find(ref); func = (rule!=p.first->getMatchFunctors().end()) ? rule->second : nullptr; } } @@ -105,10 +105,9 @@ AndMatchFunctor::AndMatchFunctor(const pairgetAttributeNS(nullptr,_id)); - const char* id = (temp.get() && *temp.get()) ? temp.get() : ""; - if (*id && functorMap->getMatchFunctors().count(id)) - id = ""; + string id = XMLHelper::getAttrString(e, nullptr, _id); + if (!id.empty() && functorMap->getMatchFunctors().count(id)) + id.clear(); auto_ptr type(XMLHelper::getXSIType(e)); if (!type.get())