void *data)
{
eap_gss_get_attr_types_args *args = (eap_gss_get_attr_types_args *)data;
- gss_buffer_t prefix = GSS_C_NO_BUFFER;
gss_buffer_desc qualified;
OM_uint32 major, minor;
major = gss_add_buffer_set_member(&minor, &qualified, &args->attrs);
gss_release_buffer(&minor, &qualified);
} else {
- major = gss_add_buffer_set_member(&minor, prefix, &args->attrs);
+ major = gss_add_buffer_set_member(&minor, attribute, &args->attrs);
}
return GSS_ERROR(major) == false;
gss_eap_saml_assertion_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
void *data) const
{
+ bool ret;
+
/* just add the prefix */
- return addAttribute(this, GSS_C_NO_BUFFER, data);
+ if (m_assertion != NULL)
+ ret = addAttribute(this, GSS_C_NO_BUFFER, data);
+ else
+ ret = true;
+
+ return ret;
}
void
delete resolver;
+#ifdef GSSEAP_DEBUG
+ gss_buffer_desc testattr = {
+ sizeof("urn:greet:greeting") - 1, (void *)"urn:greet:greeting" };
+ gss_buffer_desc testval =
+ { sizeof("Hello, GSS EAP.") - 1, (void *)"Hello, GSS EAP." };
+ setAttribute(true, &testattr, &testval);
+#endif /* GSSEAP_DEBUG */
+
return true;
}
const gss_buffer_t value)
{
string attrStr((char *)attr->value, attr->length);
- vector <string> ids(1);
-
- ids.push_back(attrStr);
-
+ vector <string> ids(1, attrStr);
SimpleAttribute *a = new SimpleAttribute(ids);
if (value->length != 0) {
bool
gss_eap_shib_attr_provider::init(void)
{
+#if 1
+ SPConfig& conf=SPConfig::getConfig();
+ conf.setFeatures(
+ SPConfig::Metadata |
+ SPConfig::Trust |
+ SPConfig::AttributeResolution |
+ SPConfig::Credentials |
+ SPConfig::OutOfProcess
+ );
+ if (!conf.init())
+ return false;
+ if (!conf.instantiate()) {
+ conf.term();
+ return false;
+ }
+#else
if (!ShibbolethResolver::init())
return false;
+#endif
gss_eap_attr_ctx::registerProvider(ATTR_TYPE_LOCAL,
NULL,
Attribute *
gss_eap_shib_attr_provider::duplicateAttribute(const Attribute *src)
{
- Attribute *attribute;
-
DDF obj = src->marshall();
- attribute = Attribute::unmarshall(obj);
+ Attribute *attribute = Attribute::unmarshall(obj);
obj.destroy();
return attribute;