X-Git-Url: http://www.project-moonshot.org/gitweb/?p=moonshot.git;a=blobdiff_plain;f=mech_eap%2Futil_saml.cpp;fp=mech_eap%2Futil_saml.cpp;h=2451c464339c8a1718a8fee5c763f3326fbe0df3;hp=5346cc4537234f5957a2c822859f1f87f9f73026;hb=beedb92ef66eeaa77aae08688cde409d96a6f829;hpb=5a800e2207a95f3765bd07128db1f06e50207762 diff --git a/mech_eap/util_saml.cpp b/mech_eap/util_saml.cpp index 5346cc4..2451c46 100644 --- a/mech_eap/util_saml.cpp +++ b/mech_eap/util_saml.cpp @@ -444,13 +444,17 @@ gss_eap_saml_attr_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAtt const_cast(*s)->getAttributes(); for (vector::const_iterator a = attrs.begin(); a != attrs.end(); ++a) { - const XMLCh *attributeName = (*a)->getName(); - const XMLCh *attributeNameFormat = (*a)->getNameFormat(); + const XMLCh *attributeName, *attributeNameFormat; XMLCh *qualifiedName; XMLCh space[2] = { ' ', 0 }; gss_buffer_desc utf8; bool ret; + attributeName = (*a)->getName(); + attributeNameFormat = (*a)->getNameFormat(); + if (attributeNameFormat == NULL || attributeNameFormat[0] == '\0') + attributeNameFormat = saml2::Attribute::UNSPECIFIED; + qualifiedName = new XMLCh[XMLString::stringLen(attributeNameFormat) + 1 + XMLString::stringLen(attributeName) + 1]; XMLString::copyString(qualifiedName, attributeNameFormat); @@ -619,8 +623,15 @@ gss_eap_saml_attr_provider::getAttribute(const gss_buffer_t attr, const_cast(*s)->getAttributes(); for (vector::const_iterator a = attrs.begin(); a != attrs.end(); ++a) { - if (XMLString::equals((*a)->getNameFormat(), components->elementAt(0)) && - XMLString::equals((*a)->getName(), components->elementAt(1))) { + const XMLCh *attributeName, *attributeNameFormat; + + attributeName = (*a)->getName(); + attributeNameFormat = (*a)->getNameFormat(); + if (attributeNameFormat == NULL || attributeNameFormat[0] == '\0') + attributeNameFormat = saml2::Attribute::UNSPECIFIED; + + if (XMLString::equals(attributeNameFormat, components->elementAt(0)) && + XMLString::equals(attributeName, components->elementAt(1))) { ret = *a; break; }