summaryrefslogtreecommitdiffstats
path: root/lasso/Attic
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-08-04 00:45:32 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-08-04 00:45:32 +0000
commit8116061d6bd0c2825f7fe072a890151786f4fce1 (patch)
tree708ed988df5b10b5d34a1b4037d37a5b7d6a865d /lasso/Attic
parentbad710b4e0aa661ab2d9a7d7aed95e5672221fee (diff)
downloadlasso-8116061d6bd0c2825f7fe072a890151786f4fce1.tar.gz
lasso-8116061d6bd0c2825f7fe072a890151786f4fce1.tar.xz
lasso-8116061d6bd0c2825f7fe072a890151786f4fce1.zip
Changed all lasso_provider_get_* methods prototype
It was added: a 'provider_type' argument to read in the appropriate Descriptor in metadata a 'err' argument for reporting errors
Diffstat (limited to 'lasso/Attic')
-rw-r--r--lasso/Attic/protocols/provider.c315
-rw-r--r--lasso/Attic/protocols/provider.h68
2 files changed, 305 insertions, 78 deletions
diff --git a/lasso/Attic/protocols/provider.c b/lasso/Attic/protocols/provider.c
index 26a92f9f..0ff07ce0 100644
--- a/lasso/Attic/protocols/provider.c
+++ b/lasso/Attic/protocols/provider.c
@@ -74,10 +74,12 @@ lasso_provider_dump(LassoProvider *provider)
provider_class->add_child(provider_node, metadata_node, FALSE);
lasso_node_destroy(metadata_node);
if(provider->public_key != NULL) {
- provider_class->set_prop(provider_node, LASSO_PROVIDER_PUBLIC_KEY_NODE, provider->public_key);
+ provider_class->set_prop(provider_node, LASSO_PROVIDER_PUBLIC_KEY_NODE,
+ provider->public_key);
}
if(provider->ca_certificate != NULL) {
- provider_class->set_prop(provider_node, LASSO_PROVIDER_CA_CERTIFICATE_NODE, provider->ca_certificate);
+ provider_class->set_prop(provider_node, LASSO_PROVIDER_CA_CERTIFICATE_NODE,
+ provider->ca_certificate);
}
provider_dump = lasso_node_export(provider_node);
@@ -87,83 +89,167 @@ lasso_provider_dump(LassoProvider *provider)
}
gchar *
-lasso_provider_get_assertionConsumerServiceURL(LassoProvider *provider)
+lasso_provider_get_metadata_value(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ gchar *name,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "AssertionConsumerServiceURL", NULL, NULL));
+ xmlChar *value;
+ LassoNode *descriptor;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ if (xmlStrEqual(name, "ProviderID")) {
+ descriptor = lasso_node_get_child(provider->metadata,
+ "EntityDescriptor", NULL, NULL);
+ value = lasso_node_get_attr_value(descriptor, name, &tmp_err);
+ }
+ else {
+ switch (provider_type) {
+ case lassoProviderTypeSp:
+ descriptor = lasso_node_get_child(provider->metadata,
+ "SPDescriptor", NULL, NULL);
+ break;
+ case lassoProviderTypeIdp:
+ descriptor = lasso_node_get_child(provider->metadata,
+ "IDPDescriptor", NULL, NULL);
+ break;
+ }
+ value = lasso_node_get_child_content(descriptor, name, NULL,
+ &tmp_err);
+ }
+ lasso_node_destroy(descriptor);
+
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_federationTerminationNotificationProtocolProfile(LassoProvider *provider)
+lasso_provider_get_assertionConsumerServiceURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "FederationTerminationNotificationProtocolProfile", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "AssertionConsumerServiceURL",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_federationTerminationReturnServiceURL(LassoProvider *provider)
+lasso_provider_get_authnRequestsSigned(LassoProvider *provider,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "FederationTerminationReturnServiceURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ lassoProviderTypeSp,
+ "AuthnRequestsSigned",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_federationTerminationServiceURL(LassoProvider *provider)
+lasso_provider_get_federationTerminationNotificationProtocolProfile(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "FederationTerminationServiceURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "FederationTerminationNotificationProtocolProfile",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_nameIdentifierMappingProtocolProfile(LassoProvider *provider,
- GError **err)
+lasso_provider_get_federationTerminationReturnServiceURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- GError *tmp_err = NULL;
xmlChar *value;
+ GError *tmp_err = NULL;
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
-
- value = lasso_node_get_attr_value(provider->metadata,
- "NameIdentifierMappingProtocolProfile",
- &tmp_err);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "FederationTerminationReturnServiceURL",
+ &tmp_err);
if (value == NULL) {
g_propagate_error (err, tmp_err);
- return (NULL);
}
+
return (value);
}
gchar *
-lasso_provider_get_nameIdentifierMappingServiceURL(LassoProvider *provider,
- GError **err)
+lasso_provider_get_federationTerminationServiceURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- GError *tmp_err = NULL;
xmlChar *value;
+ GError *tmp_err = NULL;
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
- value = lasso_node_get_attr_value(provider->metadata,
- "NameIdentifierMappingServiceURL",
- &tmp_err);
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "FederationTerminationServiceURL",
+ &tmp_err);
if (value == NULL) {
g_propagate_error (err, tmp_err);
- return (NULL);
}
+
return (value);
}
gchar *
-lasso_provider_get_nameIdentifierMappingServiceReturnURL(LassoProvider *provider,
- GError **err)
+lasso_provider_get_nameIdentifierMappingProtocolProfile(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- GError *tmp_err = NULL;
xmlChar *value;
+ GError *tmp_err = NULL;
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
-
- value = lasso_node_get_attr_value(provider->metadata,
- "NameIdentifierMappingServiceReturnURL",
- &tmp_err);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "NameIdentifierMappingProtocolProfile",
+ &tmp_err);
if (value == NULL) {
g_propagate_error (err, tmp_err);
- return (NULL);
}
+
return (value);
}
@@ -171,63 +257,184 @@ gchar *
lasso_provider_get_providerID(LassoProvider *provider,
GError **err)
{
- GError *tmp_err = NULL;
xmlChar *value;
+ GError *tmp_err = NULL;
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
-
- value = lasso_node_get_attr_value(provider->metadata, "ProviderID",
- &tmp_err);
+
+ value = lasso_provider_get_metadata_value(provider,
+ lassoProviderTypeSp, /* bidon */
+ "ProviderID",
+ &tmp_err);
if (value == NULL) {
g_propagate_error (err, tmp_err);
- return (NULL);
}
+
return (value);
}
gchar *
-lasso_provider_get_registerNameIdentifierProtocolProfile(LassoProvider *provider)
+lasso_provider_get_registerNameIdentifierProtocolProfile(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "RegisterNameIdentifierProtocolProfile", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "RegisterNameIdentifierProtocolProfile",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_registerNameIdentifierServiceURL(LassoProvider *provider)
+lasso_provider_get_registerNameIdentifierServiceURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "RegisterNameIdentifierServiceURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "RegisterNameIdentifierServiceURL",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_singleSignOnProtocolProfile(LassoProvider *provider)
+lasso_provider_get_singleSignOnProtocolProfile(LassoProvider *provider,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SingleSignOnProtocolProfile", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ lassoProviderTypeIdp,
+ "SingleSignOnProtocolProfile",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_singleSignOnServiceURL(LassoProvider *provider)
+lasso_provider_get_singleSignOnServiceURL(LassoProvider *provider,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SingleSignOnServiceURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ lassoProviderTypeIdp,
+ "SingleSignOnServiceURL",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
-gchar *lasso_provider_get_singleLogoutProtocolProfile(LassoProvider *provider)
+gchar *
+lasso_provider_get_singleLogoutProtocolProfile(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SingleLogoutProtocolProfile", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "SingleLogoutProtocolProfile",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
-gchar *lasso_provider_get_singleLogoutServiceURL(LassoProvider *provider)
+gchar *lasso_provider_get_singleLogoutServiceURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SingleLogoutServiceURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "SingleLogoutServiceURL",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
-gchar *lasso_provider_get_singleLogoutServiceReturnURL(LassoProvider *provider)
+gchar *lasso_provider_get_singleLogoutServiceReturnURL(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SingleLogoutServiceReturnURL", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "SingleLogoutServiceReturnURL",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
gchar *
-lasso_provider_get_soapEndpoint(LassoProvider *provider)
+lasso_provider_get_soapEndpoint(LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err)
{
- return(lasso_node_get_child_content(provider->metadata, "SoapEndpoint", NULL, NULL));
+ xmlChar *value;
+ GError *tmp_err = NULL;
+
+ g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+
+ value = lasso_provider_get_metadata_value(provider,
+ provider_type,
+ "SoapEndpoint",
+ &tmp_err);
+ if (value == NULL) {
+ g_propagate_error (err, tmp_err);
+ }
+
+ return (value);
}
void
diff --git a/lasso/Attic/protocols/provider.h b/lasso/Attic/protocols/provider.h
index 16bcd1d9..b3e6451f 100644
--- a/lasso/Attic/protocols/provider.h
+++ b/lasso/Attic/protocols/provider.h
@@ -71,55 +71,75 @@ struct _LassoProviderClass {
LASSO_EXPORT GType lasso_provider_get_type (void);
-LASSO_EXPORT LassoProvider *lasso_provider_new (gchar *metadata,
+LASSO_EXPORT LassoProvider* lasso_provider_new (gchar *metadata,
gchar *public_key,
gchar *ca_certificate);
-LASSO_EXPORT LassoProvider *lasso_provider_new_from_metadata_node (LassoNode *metadata_node);
+LASSO_EXPORT LassoProvider* lasso_provider_new_from_metadata_node (LassoNode *metadata_node);
-LASSO_EXPORT LassoProvider *lasso_provider_new_metadata_filename (gchar *metadata_filename);
+LASSO_EXPORT LassoProvider* lasso_provider_new_metadata_filename (gchar *metadata_filename);
LASSO_EXPORT LassoProvider* lasso_provider_copy (LassoProvider *provider);
LASSO_EXPORT void lasso_provider_destroy (LassoProvider *provider);
-LASSO_EXPORT gchar *lasso_provider_dump (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_dump (LassoProvider *provider);
-LASSO_EXPORT gchar *lasso_provider_get_assertionConsumerServiceURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_assertionConsumerServiceURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_federationTerminationNotificationProtocolProfile (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_authnRequestsSigned (LassoProvider *provider,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_federationTerminationReturnServiceURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_federationTerminationNotificationProtocolProfile (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_federationTerminationServiceURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_federationTerminationReturnServiceURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_nameIdentifierMappingProtocolProfile (LassoProvider *provider,
- GError **err);
+LASSO_EXPORT gchar* lasso_provider_get_federationTerminationServiceURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_nameIdentifierMappingServiceURL (LassoProvider *provider,
- GError **err);
+LASSO_EXPORT gchar* lasso_provider_get_nameIdentifierMappingProtocolProfile (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_nameIdentifierMappingServiceReturnURL (LassoProvider *provider,
+LASSO_EXPORT gchar* lasso_provider_get_providerID (LassoProvider *provider,
GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_providerID (LassoProvider *provider,
- GError **err);
+LASSO_EXPORT gchar* lasso_provider_get_registerNameIdentifierProtocolProfile (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_registerNameIdentifierProtocolProfile (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_registerNameIdentifierServiceURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_registerNameIdentifierServiceURL (LassoProvider *provider);
-
-LASSO_EXPORT gchar *lasso_provider_get_singleSignOnProtocolProfile (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_singleSignOnProtocolProfile (LassoProvider *provider,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_singleSignOnServiceURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_singleSignOnServiceURL (LassoProvider *provider,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_singleLogoutProtocolProfile (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_singleLogoutProtocolProfile (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_singleLogoutServiceURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_singleLogoutServiceURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar *lasso_provider_get_singleLogoutServiceReturnURL (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_singleLogoutServiceReturnURL (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
-LASSO_EXPORT gchar* lasso_provider_get_soapEndpoint (LassoProvider *provider);
+LASSO_EXPORT gchar* lasso_provider_get_soapEndpoint (LassoProvider *provider,
+ lassoProviderTypes provider_type,
+ GError **err);
LASSO_EXPORT void lasso_provider_set_public_key (LassoProvider *provider,
gchar *public_key);