X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2Fhandler%2Fimpl%2FSAML2Logout.cpp;h=2b0c5d015acdbca2c3c84718c9820431a598cdc2;hb=580d548cdf33a797ee4a2794c755735406d6b372;hp=467493175bd9604eccee6ad0738e4874858bace0;hpb=6f00d9bedd6532da6d8890e965c8c2eaa5a7431f;p=shibboleth%2Fcpp-sp.git diff --git a/shibsp/handler/impl/SAML2Logout.cpp b/shibsp/handler/impl/SAML2Logout.cpp index 4674931..2b0c5d0 100644 --- a/shibsp/handler/impl/SAML2Logout.cpp +++ b/shibsp/handler/impl/SAML2Logout.cpp @@ -72,6 +72,22 @@ namespace shibsp { void receive(DDF& in, ostream& out); pair run(SPRequest& request, bool isHandler=true) const; +#ifndef SHIBSP_LITE + void generateMetadata(SPSSODescriptor& role, const char* handlerURL) const { + const char* loc = getString("Location").second; + string hurl(handlerURL); + if (*loc != '/') + hurl += '/'; + hurl += loc; + auto_ptr_XMLCh widen(hurl.c_str()); + SingleLogoutService* ep = SingleLogoutServiceBuilder::buildSingleLogoutService(); + ep->setLocation(widen.get()); + ep->setBinding(getXMLString("Binding").second); + role.getSingleLogoutServices().push_back(ep); + role.addSupport(samlconstants::SAML20P_NS); + } +#endif + private: pair doRequest( const Application& application, const char* session_id, const HTTPRequest& httpRequest, HTTPResponse& httpResponse