summaryrefslogtreecommitdiffstats
path: root/lasso/id-ff/provider.c
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-10-30 14:47:36 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-10-30 14:47:36 +0000
commit3c9e4965dd9ce072580f0cb58a0ad11980f9d8bd (patch)
treecd562682a501a94924484173f4f137dbdabf4599 /lasso/id-ff/provider.c
parent81d3b72efbf25d1e37fe13fbc58028d4d98cb6d9 (diff)
downloadlasso-3c9e4965dd9ce072580f0cb58a0ad11980f9d8bd.tar.gz
lasso-3c9e4965dd9ce072580f0cb58a0ad11980f9d8bd.tar.xz
lasso-3c9e4965dd9ce072580f0cb58a0ad11980f9d8bd.zip
Core: factorize code to obtain a SPNameQualifier
* lasso/id-ff/provider.c lasso/id-ff/provider.h: add a method giving the SPNameQualifier for a provider (its entity id or its affiliation id). * lasso/id-ff/profile.c: * lasso/saml-2.0/login.c: update use sites.
Diffstat (limited to 'lasso/id-ff/provider.c')
-rw-r--r--lasso/id-ff/provider.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 8b172ec3..fc25394e 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -1303,3 +1303,34 @@ lasso_provider_get_default_name_id_format(const LassoProvider *provider)
{
return lasso_provider_get_metadata_one(provider, "NameIDFormat");
}
+
+/**
+ * lasso_provider_get_sp_name_qualifier:
+ * @provider: a #LassoPRovider object
+ *
+ * Return the entityID to use for qualifying NameIdentifier.
+ *
+ * Return value:(transfer none): a private string or NULL. Do not keep a reference on this string or
+ * free it.
+ */
+char*
+lasso_provider_get_sp_name_qualifier(LassoProvider *provider)
+{
+ char *sp_name_qualifier;
+
+ g_return_val_if_fail(LASSO_IS_PROVIDER(provider), NULL);
+ /* should not happen ! */
+ g_return_val_if_fail(provider->private_data != NULL, NULL);
+
+ if (provider->private_data->affiliation_id) {
+ sp_name_qualifier = provider->private_data->affiliation_id;
+ } else {
+ sp_name_qualifier = provider->ProviderID;
+ }
+
+ if (sp_name_qualifier) {
+ return g_strdup(sp_name_qualifier);
+ } else {
+ return NULL;
+ }
+}