summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2005-05-12 18:14:02 +0000
committerFrederic Peters <fpeters@entrouvert.com>2005-05-12 18:14:02 +0000
commit971f06beed49a89e9397a81aade3afafd6dac814 (patch)
tree127da2bd2045de250ce968889d588cc81b474878
parenta1008ec4c1096fa872ee777068d2fa135830388d (diff)
fixed lasso_name_registration_process_request_msg so that it ends with
profile->nameIdentifier being the local name identifier.
-rw-r--r--lasso/id-ff/name_registration.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index ce4eafad..ed6b18a3 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -351,6 +351,7 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
LassoProvider *remote_provider;
LassoMessageFormat format;
LassoSamlNameIdentifier *nameIdentifier;
+ LassoLibRegisterNameIdentifierRequest *request;
g_return_val_if_fail(LASSO_IS_NAME_REGISTRATION(name_registration), -1);
g_return_val_if_fail(request_msg != NULL, -1);
@@ -378,29 +379,22 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg
if (format == LASSO_MESSAGE_FORMAT_QUERY)
profile->http_request_method = LASSO_HTTP_METHOD_REDIRECT;
+ request = LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(profile->request);
+
nameIdentifier = LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
profile->request)->SPProvidedNameIdentifier;
+ name_registration->oldNameIdentifier = NULL;
if (remote_provider->role == LASSO_PROVIDER_ROLE_IDP) {
- if (nameIdentifier) {
- profile->nameIdentifier = g_object_ref(nameIdentifier);
- name_registration->oldNameIdentifier = g_object_ref(
- profile->nameIdentifier);
+ /* IdP initiated */
+ if (request->SPProvidedNameIdentifier) {
+ profile->nameIdentifier = g_object_ref(request->SPProvidedNameIdentifier);
} else {
- profile->nameIdentifier = g_object_ref(
- LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
- profile->request)->IDPProvidedNameIdentifier);
- name_registration->oldNameIdentifier = g_object_ref(
- LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
- profile->request)->OldProvidedNameIdentifier);
+ profile->nameIdentifier = g_object_ref(request->OldProvidedNameIdentifier);
}
+ } else if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) {
+ /* SP initiated, profile->name */
+ profile->nameIdentifier = g_object_ref(request->IDPProvidedNameIdentifier);
}
- if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) {
- profile->nameIdentifier = g_object_ref(nameIdentifier);
- name_registration->oldNameIdentifier = g_object_ref(
- LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(
- profile->request)->OldProvidedNameIdentifier);
- }
-
return profile->signature_status;
}