X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2Fhandler%2Fimpl%2FAssertionConsumerService.cpp;h=f4863cdb92bb7b089a1b031ef16cef7b111d02c4;hb=75458f3458ecf6f36c3c46a70154701c0d68a8e5;hp=69fd4b97e982a7e2186fb121fc6514c6cb399c45;hpb=1925ca6d84991c5863a7f17cfeb454c43bc156b6;p=shibboleth%2Fsp.git diff --git a/shibsp/handler/impl/AssertionConsumerService.cpp b/shibsp/handler/impl/AssertionConsumerService.cpp index 69fd4b9..f4863cd 100644 --- a/shibsp/handler/impl/AssertionConsumerService.cpp +++ b/shibsp/handler/impl/AssertionConsumerService.cpp @@ -179,6 +179,9 @@ pair AssertionConsumerService::processMessage( void AssertionConsumerService::checkAddress(const Application& application, const HTTPRequest& httpRequest, const char* issuedTo) const { + if (!issuedTo || !*issuedTo) + return; + const PropertySet* props=application.getPropertySet("Sessions"); pair checkAddress = props ? props->getBool("checkAddress") : make_pair(false,true); if (!checkAddress.first) @@ -209,7 +212,16 @@ void AssertionConsumerService::generateMetadata(SPSSODescriptor& role, const cha saml2md::AssertionConsumerService* ep = saml2md::AssertionConsumerServiceBuilder::buildAssertionConsumerService(); ep->setLocation(widen.get()); ep->setBinding(getXMLString("Binding").second); - ep->setIndex(getXMLString("index").second); + if (!strncmp(handlerURL, "https", 5)) { + pair index = getXMLString("sslIndex", shibspconstants::ASCII_SHIB2SPCONFIG_NS); + if (index.first) + ep->setIndex(index.second); + else + ep->setIndex(getXMLString("index").second); + } + else { + ep->setIndex(getXMLString("index").second); + } role.getAssertionConsumerServices().push_back(ep); }