projects
/
moonshot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2b5e2d6
)
make attribute prefix a class method
author
Luke Howard
<lukeh@padl.com>
Sun, 27 Mar 2011 22:47:48 +0000
(09:47 +1100)
committer
Luke Howard
<lukeh@padl.com>
Sun, 27 Mar 2011 22:47:48 +0000
(09:47 +1100)
mech_eap/util_attr.cpp
patch
|
blob
|
history
mech_eap/util_attr.h
patch
|
blob
|
history
mech_eap/util_radius.cpp
patch
|
blob
|
history
mech_eap/util_radius.h
patch
|
blob
|
history
mech_eap/util_saml.cpp
patch
|
blob
|
history
mech_eap/util_saml.h
patch
|
blob
|
history
mech_eap/util_shib.cpp
patch
|
blob
|
history
mech_eap/util_shib.h
patch
|
blob
|
history
diff --git
a/mech_eap/util_attr.cpp
b/mech_eap/util_attr.cpp
index
ed45cd3
..
733662f
100644
(file)
--- a/
mech_eap/util_attr.cpp
+++ b/
mech_eap/util_attr.cpp
@@
-95,14
+95,12
@@
gssEapAttrProvidersFinalize(OM_uint32 *minor)
}
static gss_eap_attr_create_provider gssEapAttrFactories[ATTR_TYPE_MAX + 1];
}
static gss_eap_attr_create_provider gssEapAttrFactories[ATTR_TYPE_MAX + 1];
-static gss_buffer_desc gssEapAttrPrefixes[ATTR_TYPE_MAX + 1];
/*
* Register a provider for a particular type and prefix
*/
void
gss_eap_attr_ctx::registerProvider(unsigned int type,
/*
* Register a provider for a particular type and prefix
*/
void
gss_eap_attr_ctx::registerProvider(unsigned int type,
- const char *prefix,
gss_eap_attr_create_provider factory)
{
assert(type <= ATTR_TYPE_MAX);
gss_eap_attr_create_provider factory)
{
assert(type <= ATTR_TYPE_MAX);
@@
-110,13
+108,6
@@
gss_eap_attr_ctx::registerProvider(unsigned int type,
assert(gssEapAttrFactories[type] == NULL);
gssEapAttrFactories[type] = factory;
assert(gssEapAttrFactories[type] == NULL);
gssEapAttrFactories[type] = factory;
- if (prefix != NULL) {
- gssEapAttrPrefixes[type].value = (void *)prefix;
- gssEapAttrPrefixes[type].length = strlen(prefix);
- } else {
- gssEapAttrPrefixes[type].value = NULL;
- gssEapAttrPrefixes[type].length = 0;
- }
}
/*
}
/*
@@
-128,8
+119,6
@@
gss_eap_attr_ctx::unregisterProvider(unsigned int type)
assert(type <= ATTR_TYPE_MAX);
gssEapAttrFactories[type] = NULL;
assert(type <= ATTR_TYPE_MAX);
gssEapAttrFactories[type] = NULL;
- gssEapAttrPrefixes[type].value = NULL;
- gssEapAttrPrefixes[type].length = 0;
}
/*
}
/*
@@
-156,12
+145,22
@@
gss_eap_attr_ctx::gss_eap_attr_ctx(void)
* Convert an attribute prefix to a type
*/
unsigned int
* Convert an attribute prefix to a type
*/
unsigned int
-gss_eap_attr_ctx::attributePrefixToType(const gss_buffer_t prefix)
+gss_eap_attr_ctx::attributePrefixToType(const gss_buffer_t prefix)
const
{
unsigned int i;
for (i = ATTR_TYPE_MIN; i < ATTR_TYPE_MAX; i++) {
{
unsigned int i;
for (i = ATTR_TYPE_MIN; i < ATTR_TYPE_MAX; i++) {
- if (bufferEqual(&gssEapAttrPrefixes[i], prefix))
+ const char *pprefix;
+
+ if (!providerEnabled(i))
+ continue;
+
+ pprefix = m_providers[i]->prefix();
+ if (pprefix == NULL)
+ continue;
+
+ if (strlen(pprefix) == prefix->length &&
+ memcmp(pprefix, prefix->value, prefix->length) == 0)
return i;
}
return i;
}
@@
-171,13
+170,22
@@
gss_eap_attr_ctx::attributePrefixToType(const gss_buffer_t prefix)
/*
* Convert a type to an attribute prefix
*/
/*
* Convert a type to an attribute prefix
*/
-const gss_buffer_t
-gss_eap_attr_ctx::attributeTypeToPrefix(unsigned int type)
+gss_buffer_desc
+gss_eap_attr_ctx::attributeTypeToPrefix(unsigned int type)
const
{
{
+ gss_buffer_desc prefix = GSS_C_EMPTY_BUFFER;
+
if (type < ATTR_TYPE_MIN || type >= ATTR_TYPE_MAX)
if (type < ATTR_TYPE_MIN || type >= ATTR_TYPE_MAX)
- return
GSS_C_NO_BUFFER
;
+ return
prefix
;
- return &gssEapAttrPrefixes[type];
+ if (!providerEnabled(type))
+ return prefix;
+
+ prefix.value = (void *)m_providers[type]->prefix();
+ if (prefix.value != NULL)
+ prefix.length = strlen((char *)prefix.value);
+
+ return prefix;
}
bool
}
bool
@@
-378,19
+386,6
@@
gss_eap_attr_ctx::getProvider(unsigned int type) const
}
/*
}
/*
- * Locate provider for a given prefix
- */
-gss_eap_attr_provider *
-gss_eap_attr_ctx::getProvider(const gss_buffer_t prefix) const
-{
- unsigned int type;
-
- type = attributePrefixToType(prefix);
-
- return m_providers[type];
-}
-
-/*
* Get primary provider. Only the primary provider is serialised when
* gss_export_sec_context() or gss_export_name_composite() is called.
*/
* Get primary provider. Only the primary provider is serialised when
* gss_export_sec_context() or gss_export_name_composite() is called.
*/
@@
-475,7
+470,8
@@
struct eap_gss_get_attr_types_args {
};
static bool
};
static bool
-addAttribute(const gss_eap_attr_provider *provider GSSEAP_UNUSED,
+addAttribute(const gss_eap_attr_ctx *manager,
+ const gss_eap_attr_provider *provider GSSEAP_UNUSED,
const gss_buffer_t attribute,
void *data)
{
const gss_buffer_t attribute,
void *data)
{
@@
-484,7
+480,7
@@
addAttribute(const gss_eap_attr_provider *provider GSSEAP_UNUSED,
OM_uint32 major, minor;
if (args->type != ATTR_TYPE_LOCAL) {
OM_uint32 major, minor;
if (args->type != ATTR_TYPE_LOCAL) {
-
gss_eap_attr_ctx::
composeAttributeName(args->type, attribute, &qualified);
+
manager->
composeAttributeName(args->type, attribute, &qualified);
major = gss_add_buffer_set_member(&minor, &qualified, &args->attrs);
gss_release_buffer(&minor, &qualified);
} else {
major = gss_add_buffer_set_member(&minor, &qualified, &args->attrs);
gss_release_buffer(&minor, &qualified);
} else {
@@
-759,7
+755,7
@@
gss_eap_attr_ctx::decomposeAttributeName(const gss_buffer_t attribute,
void
gss_eap_attr_ctx::decomposeAttributeName(const gss_buffer_t attribute,
unsigned int *type,
void
gss_eap_attr_ctx::decomposeAttributeName(const gss_buffer_t attribute,
unsigned int *type,
- gss_buffer_t suffix)
+ gss_buffer_t suffix)
const
{
gss_buffer_desc prefix = GSS_C_EMPTY_BUFFER;
{
gss_buffer_desc prefix = GSS_C_EMPTY_BUFFER;
@@
-796,9
+792,9
@@
std::string
gss_eap_attr_ctx::composeAttributeName(unsigned int type,
const gss_buffer_t suffix)
{
gss_eap_attr_ctx::composeAttributeName(unsigned int type,
const gss_buffer_t suffix)
{
-
const gss_buffer_t
prefix = attributeTypeToPrefix(type);
+
gss_buffer_desc
prefix = attributeTypeToPrefix(type);
- return composeAttributeName(prefix, suffix);
+ return composeAttributeName(
&
prefix, suffix);
}
/*
}
/*
@@
-825,11
+821,11
@@
gss_eap_attr_ctx::composeAttributeName(const gss_buffer_t prefix,
void
gss_eap_attr_ctx::composeAttributeName(unsigned int type,
const gss_buffer_t suffix,
void
gss_eap_attr_ctx::composeAttributeName(unsigned int type,
const gss_buffer_t suffix,
- gss_buffer_t attribute)
+ gss_buffer_t attribute)
const
{
{
- gss_buffer_
t
prefix = attributeTypeToPrefix(type);
+ gss_buffer_
desc
prefix = attributeTypeToPrefix(type);
- return composeAttributeName(prefix, suffix, attribute);
+ return composeAttributeName(
&
prefix, suffix, attribute);
}
/*
}
/*
diff --git
a/mech_eap/util_attr.h
b/mech_eap/util_attr.h
index
90a8c91
..
6af4cf3
100644
(file)
--- a/
mech_eap/util_attr.h
+++ b/
mech_eap/util_attr.h
@@
-45,7
+45,8
@@
struct gss_eap_attr_provider;
struct gss_eap_attr_ctx;
typedef bool
struct gss_eap_attr_ctx;
typedef bool
-(*gss_eap_attr_enumeration_cb)(const gss_eap_attr_provider *source,
+(*gss_eap_attr_enumeration_cb)(const gss_eap_attr_ctx *ctx,
+ const gss_eap_attr_provider *source,
const gss_buffer_t attribute,
void *data);
const gss_buffer_t attribute,
void *data);
@@
-125,6
+126,11
@@
public:
{
}
{
}
+ virtual const char *prefix(void) const
+ {
+ return NULL;
+ }
+
virtual void exportToBuffer(gss_buffer_t buffer GSSEAP_UNUSED) const
{
}
virtual void exportToBuffer(gss_buffer_t buffer GSSEAP_UNUSED) const
{
}
@@
-194,12
+200,9
@@
public:
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_buffer_t buffer);
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_buffer_t buffer);
- static unsigned int
- attributePrefixToType(const gss_buffer_t prefix);
-
- static const gss_buffer_t
- attributeTypeToPrefix(unsigned int type);
-
+ static std::string
+ composeAttributeName(const gss_buffer_t prefix,
+ const gss_buffer_t suffix);
static void
decomposeAttributeName(const gss_buffer_t attribute,
gss_buffer_t prefix,
static void
decomposeAttributeName(const gss_buffer_t attribute,
gss_buffer_t prefix,
@@
-208,28
+211,23
@@
public:
composeAttributeName(const gss_buffer_t prefix,
const gss_buffer_t suffix,
gss_buffer_t attribute);
composeAttributeName(const gss_buffer_t prefix,
const gss_buffer_t suffix,
gss_buffer_t attribute);
- static void
+
+ std::string
+ composeAttributeName(unsigned int type,
+ const gss_buffer_t suffix);
+ void
decomposeAttributeName(const gss_buffer_t attribute,
unsigned int *type,
decomposeAttributeName(const gss_buffer_t attribute,
unsigned int *type,
- gss_buffer_t suffix);
-
static
void
+ gss_buffer_t suffix)
const
;
+ void
composeAttributeName(unsigned int type,
const gss_buffer_t suffix,
composeAttributeName(unsigned int type,
const gss_buffer_t suffix,
- gss_buffer_t attribute);
-
- static std::string
- composeAttributeName(const gss_buffer_t prefix,
- const gss_buffer_t suffix);
- static std::string
- composeAttributeName(unsigned int type,
- const gss_buffer_t suffix);
+ gss_buffer_t attribute) const;
gss_eap_attr_provider *getProvider(unsigned int type) const;
gss_eap_attr_provider *getProvider(unsigned int type) const;
- gss_eap_attr_provider *getProvider(const gss_buffer_t prefix) const;
static void
registerProvider(unsigned int type,
static void
registerProvider(unsigned int type,
- const char *prefix,
gss_eap_attr_create_provider factory);
static void
unregisterProvider(unsigned int type);
gss_eap_attr_create_provider factory);
static void
unregisterProvider(unsigned int type);
@@
-241,6
+239,9
@@
private:
bool providerEnabled(unsigned int type) const;
void releaseProvider(unsigned int type);
bool providerEnabled(unsigned int type) const;
void releaseProvider(unsigned int type);
+ unsigned int attributePrefixToType(const gss_buffer_t prefix) const;
+ gss_buffer_desc attributeTypeToPrefix(unsigned int type) const;
+
gss_eap_attr_provider *getPrimaryProvider(void) const;
/* make non-copyable */
gss_eap_attr_provider *getPrimaryProvider(void) const;
/* make non-copyable */
diff --git
a/mech_eap/util_radius.cpp
b/mech_eap/util_radius.cpp
index
dfd8964
..
934aa5f
100644
(file)
--- a/
mech_eap/util_radius.cpp
+++ b/
mech_eap/util_radius.cpp
@@
-223,7
+223,7
@@
gss_eap_radius_attr_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addA
attribute.value = attrid;
attribute.length = strlen(attrid);
attribute.value = attrid;
attribute.length = strlen(attrid);
- if (!addAttribute(this, &attribute, data))
+ if (!addAttribute(
m_manager,
this, &attribute, data))
return false;
seen.push_back(std::string(vp->name));
return false;
seen.push_back(std::string(vp->name));
@@
-449,9
+449,7
@@
gss_eap_radius_attr_provider::init(void)
{
struct rs_context *radContext;
{
struct rs_context *radContext;
- gss_eap_attr_ctx::registerProvider(ATTR_TYPE_RADIUS,
- "urn:ietf:params:gss-eap:radius-avp",
- createAttrContext);
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_RADIUS, createAttrContext);
#if 1
/*
#if 1
/*
@@
-766,6
+764,12
@@
gss_eap_radius_attr_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
return true;
}
return true;
}
+const char *
+gss_eap_radius_attr_provider::prefix(void) const
+{
+ return "urn:ietf:params:gss-eap:radius-avp";
+}
+
void
gss_eap_radius_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
void
gss_eap_radius_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
diff --git
a/mech_eap/util_radius.h
b/mech_eap/util_radius.h
index
39caa18
..
bc6165b
100644
(file)
--- a/
mech_eap/util_radius.h
+++ b/
mech_eap/util_radius.h
@@
-66,6
+66,8
@@
public:
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
+ const char *prefix(void) const;
+
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
diff --git
a/mech_eap/util_saml.cpp
b/mech_eap/util_saml.cpp
index
ca11172
..
24d125d
100644
(file)
--- a/
mech_eap/util_saml.cpp
+++ b/
mech_eap/util_saml.cpp
@@
-186,7
+186,7
@@
gss_eap_saml_assertion_provider::getAttributeTypes(gss_eap_attr_enumeration_cb a
/* just add the prefix */
if (m_assertion != NULL)
/* just add the prefix */
if (m_assertion != NULL)
- ret = addAttribute(this, GSS_C_NO_BUFFER, data);
+ ret = addAttribute(
m_manager,
this, GSS_C_NO_BUFFER, data);
else
ret = true;
else
ret = true;
@@
-304,6
+304,12
@@
gss_eap_saml_assertion_provider::releaseAnyNameMapping(gss_buffer_t type_id GSSE
delete ((saml2::Assertion *)input);
}
delete ((saml2::Assertion *)input);
}
+const char *
+gss_eap_saml_assertion_provider::prefix(void) const
+{
+ return "urn:ietf:params:gss-eap:saml-aaa-assertion";
+}
+
void
gss_eap_saml_assertion_provider::exportToBuffer(gss_buffer_t buffer) const
{
void
gss_eap_saml_assertion_provider::exportToBuffer(gss_buffer_t buffer) const
{
@@
-321,9
+327,7
@@
gss_eap_saml_assertion_provider::initFromBuffer(const gss_eap_attr_ctx *ctx GSSE
bool
gss_eap_saml_assertion_provider::init(void)
{
bool
gss_eap_saml_assertion_provider::init(void)
{
- gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML_ASSERTION,
- "urn:ietf:params:gss-eap:saml-aaa-assertion",
- createAttrContext);
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML_ASSERTION, createAttrContext);
return true;
}
return true;
}
@@
-442,7
+446,7
@@
gss_eap_saml_attr_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAtt
utf8.value = (void *)toUTF8(qualifiedName);
utf8.length = strlen((char *)utf8.value);
utf8.value = (void *)toUTF8(qualifiedName);
utf8.length = strlen((char *)utf8.value);
- ret = addAttribute(this, &utf8, data);
+ ret = addAttribute(
m_manager,
this, &utf8, data);
delete qualifiedName;
delete qualifiedName;
@@
-684,6
+688,12
@@
gss_eap_saml_attr_provider::releaseAnyNameMapping(gss_buffer_t type_id GSSEAP_UN
{
}
{
}
+const char *
+gss_eap_saml_attr_provider::prefix(void) const
+{
+ return "urn:ietf:params:gss-eap:saml-attr";
+}
+
void
gss_eap_saml_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
void
gss_eap_saml_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
@@
-701,9
+711,7
@@
gss_eap_saml_attr_provider::initFromBuffer(const gss_eap_attr_ctx *ctx GSSEAP_UN
bool
gss_eap_saml_attr_provider::init(void)
{
bool
gss_eap_saml_attr_provider::init(void)
{
- gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML,
- "urn:ietf:params:gss-eap:saml-attr",
- createAttrContext);
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_SAML, createAttrContext);
return true;
}
return true;
}
diff --git
a/mech_eap/util_saml.h
b/mech_eap/util_saml.h
index
99be5b8
..
17edb2b
100644
(file)
--- a/
mech_eap/util_saml.h
+++ b/
mech_eap/util_saml.h
@@
-74,7
+74,9
@@
public:
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
+ const char *prefix(void) const;
void exportToBuffer(gss_buffer_t buffer) const;
void exportToBuffer(gss_buffer_t buffer) const;
+
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
@@
-129,6
+131,8
@@
public:
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
+ const char *prefix(void) const;
+
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
diff --git
a/mech_eap/util_shib.cpp
b/mech_eap/util_shib.cpp
index
b2a83f6
..
4da9a31
100644
(file)
--- a/
mech_eap/util_shib.cpp
+++ b/
mech_eap/util_shib.cpp
@@
-103,12
+103,13
@@
gss_eap_shib_attr_provider::initFromExistingContext(const gss_eap_attr_ctx *mana
}
bool
}
bool
-addRadiusAttribute(const gss_eap_attr_provider *provider,
+addRadiusAttribute(const gss_eap_attr_ctx *manager,
+ const gss_eap_attr_provider *provider,
const gss_buffer_t attribute,
void *data)
{
const gss_buffer_t attribute,
void *data)
{
- const gss_eap_shib_attr_provider *shib;
const gss_eap_radius_attr_provider *radius;
const gss_eap_radius_attr_provider *radius;
+ const gss_eap_shib_attr_provider *shib;
int authenticated, complete, more = -1;
vector <string> attributeIds(1);
SimpleAttribute *a;
int authenticated, complete, more = -1;
vector <string> attributeIds(1);
SimpleAttribute *a;
@@
-119,7
+120,7
@@
addRadiusAttribute(const gss_eap_attr_provider *provider,
assert(radius != NULL && shib != NULL);
string attributeName =
assert(radius != NULL && shib != NULL);
string attributeName =
-
gss_eap_attr_ctx::
composeAttributeName(ATTR_TYPE_RADIUS, attribute);
+
manager->
composeAttributeName(ATTR_TYPE_RADIUS, attribute);
attributeIds.push_back(attributeName);
a = new SimpleAttribute(attributeIds);
attributeIds.push_back(attributeName);
a = new SimpleAttribute(attributeIds);
@@
-202,7
+203,9
@@
gss_eap_shib_attr_provider::initFromGssContext(const gss_eap_attr_ctx *manager,
m_attributes = resolver->getResolvedAttributes();
resolver->getResolvedAttributes().clear();
} catch (exception &e) {
m_attributes = resolver->getResolvedAttributes();
resolver->getResolvedAttributes().clear();
} catch (exception &e) {
- //fprintf(stderr, "%s", e.what());
+#if 0
+ fprintf(stderr, "%s", e.what());
+#endif
}
return true;
}
return true;
@@
-278,7
+281,7
@@
gss_eap_shib_attr_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAtt
attribute.value = (void *)((*a)->getId());
attribute.length = strlen((char *)attribute.value);
attribute.value = (void *)((*a)->getId());
attribute.length = strlen((char *)attribute.value);
- if (!addAttribute(this, &attribute, data))
+ if (!addAttribute(
m_manager,
this, &attribute, data))
return false;
}
return false;
}
@@
-381,6
+384,12
@@
gss_eap_shib_attr_provider::releaseAnyNameMapping(gss_buffer_t type_id GSSEAP_UN
delete v;
}
delete v;
}
+const char *
+gss_eap_shib_attr_provider::prefix(void) const
+{
+ return NULL;
+}
+
void
gss_eap_shib_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
void
gss_eap_shib_attr_provider::exportToBuffer(gss_buffer_t buffer) const
{
@@
-452,7
+461,7
@@
gss_eap_shib_attr_provider::init(void)
if (!ShibbolethResolver::init())
return false;
if (!ShibbolethResolver::init())
return false;
- gss_eap_attr_ctx::registerProvider(ATTR_TYPE_LOCAL,
NULL,
createAttrContext);
+ gss_eap_attr_ctx::registerProvider(ATTR_TYPE_LOCAL, createAttrContext);
return true;
}
return true;
}
diff --git
a/mech_eap/util_shib.h
b/mech_eap/util_shib.h
index
92198b0
..
a6fe0ec
100644
(file)
--- a/
mech_eap/util_shib.h
+++ b/
mech_eap/util_shib.h
@@
-76,6
+76,8
@@
public:
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
void releaseAnyNameMapping(gss_buffer_t type_id,
gss_any_t input) const;
+ const char *prefix(void) const;
+
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
void exportToBuffer(gss_buffer_t buffer) const;
bool initFromBuffer(const gss_eap_attr_ctx *ctx,
const gss_buffer_t buffer);
@@
-87,6
+89,10
@@
public:
static gss_eap_attr_provider *createAttrContext(void);
static gss_eap_attr_provider *createAttrContext(void);
+ std::vector<shibsp::Attribute *> getAttributes(void) const {
+ return m_attributes;
+ }
+
private:
static shibsp::Attribute *
duplicateAttribute(const shibsp::Attribute *src);
private:
static shibsp::Attribute *
duplicateAttribute(const shibsp::Attribute *src);
@@
-96,10
+102,6
@@
private:
ssize_t getAttributeIndex(const gss_buffer_t attr) const;
const shibsp::Attribute *getAttribute(const gss_buffer_t attr) const;
ssize_t getAttributeIndex(const gss_buffer_t attr) const;
const shibsp::Attribute *getAttribute(const gss_buffer_t attr) const;
- std::vector<shibsp::Attribute *> getAttributes(void) const {
- return m_attributes;
- }
-
bool authenticated(void) const { return m_authenticated; }
friend bool
bool authenticated(void) const { return m_authenticated; }
friend bool