{
#ifndef SHIBSP_LITE
Category& log = Category::getInstance(SHIBRESOLVER_LOGCAT);
- pair<const EntityDescriptor*,const RoleDescriptor*> entity = pair<const EntityDescriptor*,const RoleDescriptor*>(nullptr,nullptr);
+ pair<const EntityDescriptor*,const RoleDescriptor*> entity = pair<const EntityDescriptor*,const RoleDescriptor*>(NULL,NULL);
MetadataProvider* m = app.getMetadataProvider();
Locker locker(m);
- if (issuer) {
- // Use metadata to locate the IdP's SSO service.
+ if (issuer && *issuer) {
+ // Lookup metadata for the issuer.
MetadataProviderCriteria mc(app, issuer, &IDPSSODescriptor::ELEMENT_QNAME, samlconstants::SAML20P_NS);
- entity=m->getEntityDescriptor(mc);
+ entity = m->getEntityDescriptor(mc);
if (!entity.first) {
log.warn("unable to locate metadata for provider (%s)", issuer);
- throw MetadataException("Unable to locate metadata for identity provider ($entityID)", namedparams(1, "entityID", issuer));
}
else if (!entity.second) {
log.warn("unable to locate SAML 2.0 identity provider role for provider (%s)", issuer);
- throw MetadataException("Unable to locate SAML 2.0 identity provider role for provider ($entityID)", namedparams(1, "entityID", issuer));
}
}
AttributeExtractor* extractor = app.getAttributeExtractor();
if (extractor) {
Locker extlocker(extractor);
- if (issuer) {
+ if (entity.second) {
pair<bool,const char*> mprefix = app.getString("metadataAttributePrefix");
if (mprefix.first) {
log.debug("extracting metadata-derived attributes...");
try {
- // We pass nullptr for "issuer" because the IdP isn't the one asserting metadata-based attributes.
- extractor->extractAttributes(app, nullptr, *entity.second, resolvedAttrs);
+ // We pass NULL for "issuer" because the IdP isn't the one asserting metadata-based attributes.
+ extractor->extractAttributes(app, NULL, *entity.second, resolvedAttrs);
for (vector<Attribute*>::iterator a = resolvedAttrs.begin(); a != resolvedAttrs.end(); ++a) {
vector<string>& ids = (*a)->getAliases();
for (vector<string>::iterator id = ids.begin(); id != ids.end(); ++id)
app,
entity.first,
samlconstants::SAML20P_NS,
- nullptr,
- nullptr,
- nullptr,
+ NULL,
+ NULL,
+ NULL,
&assertions,
&inputs
)