throw MetadataException("Unable to locate metadata for identity provider ($entityID)",
namedparams(1, "entityID", entityID));
}
- const IDPSSODescriptor* role=entity->getIDPSSODescriptor(m_binding.get());
+ const IDPSSODescriptor* role=find_if(entity->getIDPSSODescriptors(), isValidForProtocol(m_binding.get()));
if (!role) {
m_log.error("unable to locate ADFS-aware identity provider role for provider (%s)", entityID);
return make_pair(false,0);
namedparams(1, "entityID", entityID)
);
}
- const IDPSSODescriptor* role = entity->getIDPSSODescriptor(m_binding.get());
+ const IDPSSODescriptor* role = find_if(entity->getIDPSSODescriptors(), isValidForProtocol(m_binding.get()));
if (!role) {
throw MetadataException(
"Unable to locate ADFS IdP role for identity provider ($entityID).",
#endif
int version = XMLString::equals(ctx.getProtocol(), samlconstants::SAML11_PROTOCOL_ENUM) ? 1 : 0;
- const AttributeAuthorityDescriptor* AA = ctx.getEntityDescriptor()->getAttributeAuthorityDescriptor(ctx.getProtocol());
+ const AttributeAuthorityDescriptor* AA =
+ find_if(ctx.getEntityDescriptor()->getAttributeAuthorityDescriptors(), isValidForProtocol(ctx.getProtocol()));
if (!AA) {
m_log.warn("no SAML 1.%d AttributeAuthority role found in metadata", version);
return false;
xmltooling::NDC ndc("query");
#endif
- const AttributeAuthorityDescriptor* AA = ctx.getEntityDescriptor()->getAttributeAuthorityDescriptor(samlconstants::SAML20P_NS);
+ const AttributeAuthorityDescriptor* AA =
+ find_if(ctx.getEntityDescriptor()->getAttributeAuthorityDescriptors(), isValidForProtocol(samlconstants::SAML20P_NS));
if (!AA) {
m_log.warn("no SAML 2 AttributeAuthority role found in metadata");
return false;
using opensaml::saml2md::EntityDescriptor;
using opensaml::saml2md::IDPSSODescriptor;
using opensaml::saml2md::SPSSODescriptor;
+using opensaml::saml2md::isValidForProtocol;
#else
# include "lite/CommonDomainCookie.h"
#endif
const EntityDescriptor* entity = policy.getMetadataProvider()->getEntityDescriptor(policy.getIssuer()->getName());
if (entity) {
m_log.debug("matched assertion issuer against metadata, searching for applicable role...");
- const IDPSSODescriptor* idp=entity->getIDPSSODescriptor(protocol);
+ const IDPSSODescriptor* idp=find_if(entity->getIDPSSODescriptors(), isValidForProtocol(protocol));
if (idp)
policy.setIssuerMetadata(idp);
else if (m_log.isWarnEnabled())
"Unable to locate metadata for identity provider ($entityID)", namedparams(1, "entityID", request.getParameter("entityID"))
);
}
- const IDPSSODescriptor* idp = entity->getIDPSSODescriptor(samlconstants::SAML20P_NS);
+ const IDPSSODescriptor* idp = find_if(entity->getIDPSSODescriptors(), isValidForProtocol(samlconstants::SAML20P_NS));
if (!idp) {
throw MetadataException(
"Unable to locate SAML 2.0 IdP role for identity provider ($entityID).",
namedparams(1, "entityID", session->getEntityID())
);
}
- const IDPSSODescriptor* role = entity->getIDPSSODescriptor(samlconstants::SAML20P_NS);
+ const IDPSSODescriptor* role = find_if(entity->getIDPSSODescriptors(), isValidForProtocol(samlconstants::SAML20P_NS));
if (!role) {
throw MetadataException(
"Unable to locate SAML 2.0 IdP role for identity provider ($entityID).",
throw MetadataException("Unable to locate metadata for identity provider ($entityID)",
namedparams(1, "entityID", entityID));
}
- const IDPSSODescriptor* role=entity->getIDPSSODescriptor(samlconstants::SAML20P_NS);
+ const IDPSSODescriptor* role=find_if(entity->getIDPSSODescriptors(), isValidForProtocol(samlconstants::SAML20P_NS));
if (!role) {
m_log.error("unable to locate SAML 2.0 identity provider role for provider (%s)", entityID);
return make_pair(false,0);
throw MetadataException("Unable to locate metadata for identity provider ($entityID)",
namedparams(1, "entityID", entityID));
}
- const IDPSSODescriptor* role=entity->getIDPSSODescriptor(shibspconstants::SHIB1_PROTOCOL_ENUM);
+ const IDPSSODescriptor* role=find_if(entity->getIDPSSODescriptors(), isValidForProtocol(shibspconstants::SHIB1_PROTOCOL_ENUM));
if (!role) {
m_log.error("unable to locate Shibboleth-aware identity provider role for provider (%s)", entityID);
return make_pair(false,0);
ResolverTest rt(NULL, a_param);
try {
- ctx = rt.resolveAttributes(*app, site->getIDPSSODescriptor(protocol), protocol, v1name, v2name.get(), NULL, NULL, NULL);
+ ctx = rt.resolveAttributes(
+ *app, find_if(site->getIDPSSODescriptors(), isValidForProtocol(protocol)), protocol, v1name, v2name.get(), NULL, NULL, NULL
+ );
}
catch (...) {
delete v1name;
vector<const Assertion*> tokens(1, dynamic_cast<Assertion*>(token.get()));
ResolverTest rt(NULL, a_param);
try {
- ctx = rt.resolveAttributes(*app, site->getIDPSSODescriptor(protocol), protocol, v1name, v2name, NULL, NULL, &tokens);
+ ctx = rt.resolveAttributes(
+ *app, find_if(site->getIDPSSODescriptors(), isValidForProtocol(protocol)), protocol, v1name, v2name, NULL, NULL, &tokens
+ );
}
catch (...) {
if (v1name)