summaryrefslogtreecommitdiffstats
path: root/lasso/Attic
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-09-20 14:12:53 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-09-20 14:12:53 +0000
commit38ebd2003d60724abe1923311fc9060d6c56cf27 (patch)
tree4dd17ecb55162ac108442ad05413eacc499a7787 /lasso/Attic
parent1af6414dc1225672179959d379818e68cf2187f0 (diff)
downloadlasso-38ebd2003d60724abe1923311fc9060d6c56cf27.tar.gz
lasso-38ebd2003d60724abe1923311fc9060d6c56cf27.tar.xz
lasso-38ebd2003d60724abe1923311fc9060d6c56cf27.zip
Added test lasso_register_name_identifier_request_new_from_query(). Verify if SPProvidedNameIdentifier exists in query (As specified in IDFF 1.2 errata, SPProvidedNameIdentifier is optional)
Diffstat (limited to 'lasso/Attic')
-rw-r--r--lasso/Attic/protocols/register_name_identifier_request.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/lasso/Attic/protocols/register_name_identifier_request.c b/lasso/Attic/protocols/register_name_identifier_request.c
index c48c279d..c87b6692 100644
--- a/lasso/Attic/protocols/register_name_identifier_request.c
+++ b/lasso/Attic/protocols/register_name_identifier_request.c
@@ -131,6 +131,7 @@ lasso_register_name_identifier_request_new(const xmlChar *providerID,
lasso_lib_register_name_identifier_request_set_providerID(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
providerID);
+ /* idp provided name identifier is required */
idpidentifier = lasso_lib_idp_provided_name_identifier_new(idpProvidedNameIdentifier);
lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(idpidentifier), idpNameQualifier);
lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(idpidentifier), idpFormat);
@@ -138,13 +139,7 @@ lasso_register_name_identifier_request_new(const xmlChar *providerID,
LASSO_LIB_IDP_PROVIDED_NAME_IDENTIFIER(idpidentifier));
lasso_node_destroy(idpidentifier);
- spidentifier = lasso_lib_sp_provided_name_identifier_new(spProvidedNameIdentifier);
- lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(spidentifier), spNameQualifier);
- lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(spidentifier), spFormat);
- lasso_lib_register_name_identifier_request_set_spProvidedNameIdentifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
- LASSO_LIB_SP_PROVIDED_NAME_IDENTIFIER(spidentifier));
- lasso_node_destroy(spidentifier);
-
+ /* old provided name identifier is required */
oldidentifier = lasso_lib_old_provided_name_identifier_new(oldProvidedNameIdentifier);
lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(oldidentifier), oldNameQualifier);
lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(oldidentifier), oldFormat);
@@ -152,6 +147,16 @@ lasso_register_name_identifier_request_new(const xmlChar *providerID,
LASSO_LIB_OLD_PROVIDED_NAME_IDENTIFIER(oldidentifier));
lasso_node_destroy(oldidentifier);
+ /* sp provided name identifier is optional */
+ if (spProvidedNameIdentifier != NULL && spNameQualifier != NULL && spFormat != NULL) {
+ spidentifier = lasso_lib_sp_provided_name_identifier_new(spProvidedNameIdentifier);
+ lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(spidentifier), spNameQualifier);
+ lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(spidentifier), spFormat);
+ lasso_lib_register_name_identifier_request_set_spProvidedNameIdentifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request),
+ LASSO_LIB_SP_PROVIDED_NAME_IDENTIFIER(spidentifier));
+ lasso_node_destroy(spidentifier);
+ }
+
return request;
}