void AssertionConsumerService::checkAddress(const Application& application, const HTTPRequest& httpRequest, const char* issuedTo) const
{
+ if (!issuedTo || !*issuedTo)
+ return;
+
const PropertySet* props=application.getPropertySet("Sessions");
pair<bool,bool> checkAddress = props ? props->getBool("checkAddress") : make_pair(false,true);
if (!checkAddress.first)
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<bool,const XMLCh*> 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);
}