summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-06-12 00:43:09 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-06-12 00:43:09 +0000
commit601aadbf8f429d8f1429a77e34e6c4f2cc67db93 (patch)
tree875bf315ecb903eb0ce6bb29bec43690522bc9da
parent94377b822f366650f6c69a90e09e18b9148ec637 (diff)
downloadlasso-601aadbf8f429d8f1429a77e34e6c4f2cc67db93.tar.gz
lasso-601aadbf8f429d8f1429a77e34e6c4f2cc67db93.tar.xz
lasso-601aadbf8f429d8f1429a77e34e6c4f2cc67db93.zip
SAMLv2: in lasso_assertion_query_build_request_msg setup nameid
* lasso_profile_get_nameIdentifier does not return profile->nameIdentifier , so we first try to use profile->nameIdentifier and if it is NULL we use lasso_profile_get_nameIdentifier.
-rw-r--r--lasso/saml-2.0/assertion_query.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lasso/saml-2.0/assertion_query.c b/lasso/saml-2.0/assertion_query.c
index 21aafb97..3b15d484 100644
--- a/lasso/saml-2.0/assertion_query.c
+++ b/lasso/saml-2.0/assertion_query.c
@@ -201,11 +201,15 @@ lasso_assertion_query_build_request_msg(LassoAssertionQuery *assertion_query)
lasso_assign_new_gobject(subject_query->Subject,
lasso_saml2_subject_new());
}
+ /* verify that there is a NameID */
if ( (! LASSO_IS_SAML2_NAME_ID(subject_query->Subject->NameID) &&
! LASSO_IS_SAML2_ENCRYPTED_ELEMENT(subject_query->Subject->EncryptedID)))
{
-
- nameID = (LassoSaml2NameID*)lasso_profile_get_nameIdentifier(profile);
+ /* if not try to get the local profile one */
+ nameID = (LassoSaml2NameID*)profile->nameIdentifier;
+ if (! LASSO_IS_SAML2_NAME_ID(nameID))
+ nameID = (LassoSaml2NameID*)lasso_profile_get_nameIdentifier(profile);
+ /* if none found, try to get the identity object or session object one */
if (! LASSO_IS_SAML2_NAME_ID(nameID))
return LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER;
lasso_assign_gobject(subject_query->Subject->NameID, nameID);