};
/*
- * gss_eap_saml_assertion_source is for retrieving the underlying
+ * gss_eap_saml_assertion_provider is for retrieving the underlying
* assertion.
*/
bool
-gss_eap_saml_assertion_source::initFromExistingContext(const gss_eap_attr_ctx *manager,
- const gss_eap_attr_source *ctx)
+gss_eap_saml_assertion_provider::initFromExistingContext(const gss_eap_attr_ctx *manager,
+ const gss_eap_attr_provider *ctx)
{
/* Then we may be creating from an existing attribute context */
- const gss_eap_saml_assertion_source *saml;
+ const gss_eap_saml_assertion_provider *saml;
assert(m_assertion == NULL);
- if (!gss_eap_attr_source::initFromExistingContext(manager, ctx))
+ if (!gss_eap_attr_provider::initFromExistingContext(manager, ctx))
return false;
- saml = static_cast<const gss_eap_saml_assertion_source *>(ctx);
+ saml = static_cast<const gss_eap_saml_assertion_provider *>(ctx);
setAssertion(saml->getAssertion());
return true;
}
bool
-gss_eap_saml_assertion_source::initFromGssContext(const gss_eap_attr_ctx *manager,
- const gss_cred_id_t gssCred,
- const gss_ctx_id_t gssCtx)
+gss_eap_saml_assertion_provider::initFromGssContext(const gss_eap_attr_ctx *manager,
+ const gss_cred_id_t gssCred,
+ const gss_ctx_id_t gssCtx)
{
- const gss_eap_radius_attr_source *radius;
+ const gss_eap_radius_attr_provider *radius;
gss_buffer_desc value = GSS_C_EMPTY_BUFFER;
int authenticated, complete, more = -1;
OM_uint32 minor;
assert(m_assertion == NULL);
- if (!gss_eap_attr_source::initFromGssContext(manager, gssCred, gssCtx))
+ if (!gss_eap_attr_provider::initFromGssContext(manager, gssCred, gssCtx))
return false;
- radius = static_cast<const gss_eap_radius_attr_source *>
+ radius = static_cast<const gss_eap_radius_attr_provider *>
(m_manager->getProvider(ATTR_TYPE_RADIUS));
if (radius != NULL &&
radius->getAttribute(512 /* XXX */, &authenticated, &complete,
return true;
}
-gss_eap_saml_assertion_source::~gss_eap_saml_assertion_source(void)
+gss_eap_saml_assertion_provider::~gss_eap_saml_assertion_provider(void)
{
delete m_assertion;
}
void
-gss_eap_saml_assertion_source::setAssertion(const saml2::Assertion *assertion)
+gss_eap_saml_assertion_provider::setAssertion(const saml2::Assertion *assertion)
{
delete m_assertion;
}
saml2::Assertion *
-gss_eap_saml_assertion_source::parseAssertion(const gss_buffer_t buffer)
+gss_eap_saml_assertion_provider::parseAssertion(const gss_buffer_t buffer)
{
string str((char *)buffer->value, buffer->length);
istringstream istream(str);
}
bool
-gss_eap_saml_assertion_source::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
- void *data) const
+gss_eap_saml_assertion_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
+ void *data) const
{
/* just add the prefix */
return addAttribute(this, GSS_C_NO_BUFFER, data);
}
void
-gss_eap_saml_assertion_source::setAttribute(int complete,
- const gss_buffer_t attr,
- const gss_buffer_t value)
+gss_eap_saml_assertion_provider::setAttribute(int complete,
+ const gss_buffer_t attr,
+ const gss_buffer_t value)
{
if (attr == GSS_C_NO_BUFFER || attr->length == 0) {
saml2::Assertion *assertion = parseAssertion(value);
}
void
-gss_eap_saml_assertion_source::deleteAttribute(const gss_buffer_t value)
+gss_eap_saml_assertion_provider::deleteAttribute(const gss_buffer_t value)
{
delete m_assertion;
m_assertion = NULL;
}
bool
-gss_eap_saml_assertion_source::getAttribute(const gss_buffer_t attr,
- int *authenticated,
- int *complete,
- gss_buffer_t value,
- gss_buffer_t display_value,
- int *more) const
+gss_eap_saml_assertion_provider::getAttribute(const gss_buffer_t attr,
+ int *authenticated,
+ int *complete,
+ gss_buffer_t value,
+ gss_buffer_t display_value,
+ int *more) const
{
string str;
}
gss_any_t
-gss_eap_saml_assertion_source::mapToAny(int authenticated,
- gss_buffer_t type_id) const
+gss_eap_saml_assertion_provider::mapToAny(int authenticated,
+ gss_buffer_t type_id) const
{
return (gss_any_t)m_assertion;
}
void
-gss_eap_saml_assertion_source::releaseAnyNameMapping(gss_buffer_t type_id,
- gss_any_t input) const
+gss_eap_saml_assertion_provider::releaseAnyNameMapping(gss_buffer_t type_id,
+ gss_any_t input) const
{
delete ((saml2::Assertion *)input);
}
void
-gss_eap_saml_assertion_source::exportToBuffer(gss_buffer_t buffer) const
+gss_eap_saml_assertion_provider::exportToBuffer(gss_buffer_t buffer) const
{
ostringstream sink;
string str;
}
bool
-gss_eap_saml_assertion_source::initFromBuffer(const gss_eap_attr_ctx *ctx,
- const gss_buffer_t buffer)
+gss_eap_saml_assertion_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
+ const gss_buffer_t buffer)
{
- if (!gss_eap_attr_source::initFromBuffer(ctx, buffer))
+ if (!gss_eap_attr_provider::initFromBuffer(ctx, buffer))
return false;
assert(m_assertion == NULL);
}
bool
-gss_eap_saml_assertion_source::init(void)
+gss_eap_saml_assertion_provider::init(void)
{
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML_ASSERTION,
+ gss_eap_saml_assertion_provider::createAttrContext);
return true;
}
void
-gss_eap_saml_assertion_source::finalize(void)
+gss_eap_saml_assertion_provider::finalize(void)
{
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML_ASSERTION, NULL);
}
-gss_eap_attr_source *
-gss_eap_saml_assertion_source::createAttrContext(void)
+gss_eap_attr_provider *
+gss_eap_saml_assertion_provider::createAttrContext(void)
{
- return new gss_eap_saml_assertion_source;
+ return new gss_eap_saml_assertion_provider;
}
/*
- * gss_eap_saml_attr_source is for retrieving the underlying attributes.
+ * gss_eap_saml_attr_provider is for retrieving the underlying attributes.
*/
const saml2::Assertion *
-gss_eap_saml_attr_source::getAssertion(void) const
+gss_eap_saml_attr_provider::getAssertion(void) const
{
- const gss_eap_saml_assertion_source *saml;
+ const gss_eap_saml_assertion_provider *saml;
- saml = static_cast<const gss_eap_saml_assertion_source *>
+ saml = static_cast<const gss_eap_saml_assertion_provider *>
(m_manager->getProvider(ATTR_TYPE_SAML_ASSERTION));
if (saml != NULL)
return saml->getAssertion();
return NULL;
}
-gss_eap_saml_attr_source::~gss_eap_saml_attr_source(void)
+gss_eap_saml_attr_provider::~gss_eap_saml_attr_provider(void)
{
/* Nothing to do, we're just a wrapper around the assertion provider. */
}
bool
-gss_eap_saml_attr_source::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
- void *data) const
+gss_eap_saml_attr_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
+ void *data) const
{
const saml2::Assertion *assertion = getAssertion();
}
void
-gss_eap_saml_attr_source::setAttribute(int complete,
- const gss_buffer_t attr,
- const gss_buffer_t value)
+gss_eap_saml_attr_provider::setAttribute(int complete,
+ const gss_buffer_t attr,
+ const gss_buffer_t value)
{
}
void
-gss_eap_saml_attr_source::deleteAttribute(const gss_buffer_t value)
+gss_eap_saml_attr_provider::deleteAttribute(const gss_buffer_t value)
{
}
const saml2::Attribute *
-gss_eap_saml_attr_source::getAttribute(const gss_buffer_t attr) const
+gss_eap_saml_attr_provider::getAttribute(const gss_buffer_t attr) const
{
const saml2::Assertion *assertion = getAssertion();
saml2::AttributeStatement *statement;
}
bool
-gss_eap_saml_attr_source::getAttribute(const gss_buffer_t attr,
- int *authenticated,
- int *complete,
- gss_buffer_t value,
- gss_buffer_t display_value,
- int *more) const
+gss_eap_saml_attr_provider::getAttribute(const gss_buffer_t attr,
+ int *authenticated,
+ int *complete,
+ gss_buffer_t value,
+ gss_buffer_t display_value,
+ int *more) const
{
const saml2::Attribute *a;
const saml2::AttributeValue *av;
}
gss_any_t
-gss_eap_saml_attr_source::mapToAny(int authenticated,
- gss_buffer_t type_id) const
+gss_eap_saml_attr_provider::mapToAny(int authenticated,
+ gss_buffer_t type_id) const
{
return (gss_any_t)NULL;
}
void
-gss_eap_saml_attr_source::releaseAnyNameMapping(gss_buffer_t type_id,
- gss_any_t input) const
+gss_eap_saml_attr_provider::releaseAnyNameMapping(gss_buffer_t type_id,
+ gss_any_t input) const
{
}
void
-gss_eap_saml_attr_source::exportToBuffer(gss_buffer_t buffer) const
+gss_eap_saml_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
buffer->length = 0;
buffer->value = NULL;
}
bool
-gss_eap_saml_attr_source::initFromBuffer(const gss_eap_attr_ctx *ctx,
- const gss_buffer_t buffer)
+gss_eap_saml_attr_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
+ const gss_buffer_t buffer)
{
return true;
}
bool
-gss_eap_saml_attr_source::init(void)
+gss_eap_saml_attr_provider::init(void)
{
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML,
+ gss_eap_saml_attr_provider::createAttrContext);
return true;
}
void
-gss_eap_saml_attr_source::finalize(void)
+gss_eap_saml_attr_provider::finalize(void)
{
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML, NULL);
}
-gss_eap_attr_source *
-gss_eap_saml_attr_source::createAttrContext(void)
+gss_eap_attr_provider *
+gss_eap_saml_attr_provider::createAttrContext(void)
{
- return new gss_eap_saml_attr_source;
+ return new gss_eap_saml_attr_provider;
}