X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2Fhandler%2Fimpl%2FChainingLogoutInitiator.cpp;h=4b8365af87a99e1481bb7c933e05944a930c3445;hb=774d366fe1303f7cb07b8caa26338ab3c98c7fb7;hp=2475787f31d47672e5127fa6a7faf3da80bdd405;hpb=8d742a1e1f479f74eafd6f60e21c5f9f329a924b;p=shibboleth%2Fcpp-sp.git diff --git a/shibsp/handler/impl/ChainingLogoutInitiator.cpp b/shibsp/handler/impl/ChainingLogoutInitiator.cpp index 2475787..4b8365a 100644 --- a/shibsp/handler/impl/ChainingLogoutInitiator.cpp +++ b/shibsp/handler/impl/ChainingLogoutInitiator.cpp @@ -23,7 +23,7 @@ #include "internal.h" #include "exceptions.h" #include "handler/AbstractHandler.h" -#include "handler/LogoutHandler.h" +#include "handler/LogoutInitiator.h" #include "util/SPConstants.h" #include @@ -40,7 +40,7 @@ namespace shibsp { #pragma warning( disable : 4250 ) #endif - class SHIBSP_DLLLOCAL ChainingLogoutInitiator : public AbstractHandler, public LogoutHandler + class SHIBSP_DLLLOCAL ChainingLogoutInitiator : public AbstractHandler, public LogoutInitiator { public: ChainingLogoutInitiator(const DOMElement* e, const char* appId); @@ -51,10 +51,6 @@ namespace shibsp { pair run(SPRequest& request, bool isHandler=true) const; #ifndef SHIBSP_LITE - const char* getType() const { - return "LogoutInitiator"; - } - void generateMetadata(opensaml::saml2md::SPSSODescriptor& role, const char* handlerURL) const { for (vector::const_iterator i = m_handlers.begin(); i!=m_handlers.end(); ++i) (*i)->generateMetadata(role, handlerURL); @@ -101,12 +97,12 @@ ChainingLogoutInitiator::ChainingLogoutInitiator(const DOMElement* e, const char SPConfig& conf = SPConfig::getConfig(); // Load up the chain of handlers. - e = e ? XMLHelper::getFirstChildElement(e, _LogoutInitiator) : nullptr; + e = XMLHelper::getFirstChildElement(e, _LogoutInitiator); while (e) { - auto_ptr_char type(e->getAttributeNS(nullptr,_type)); - if (type.get() && *(type.get())) { + string t(XMLHelper::getAttrString(e, nullptr, _type)); + if (!t.empty()) { try { - m_handlers.push_back(conf.LogoutInitiatorManager.newPlugin(type.get(),make_pair(e, appId))); + m_handlers.push_back(conf.LogoutInitiatorManager.newPlugin(t.c_str(), make_pair(e, appId))); m_handlers.back()->setParent(this); } catch (exception& ex) {