diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2005-05-12 18:14:02 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2005-05-12 18:14:02 +0000 |
| commit | 971f06beed49a89e9397a81aade3afafd6dac814 (patch) | |
| tree | 127da2bd2045de250ce968889d588cc81b474878 | |
| parent | a1008ec4c1096fa872ee777068d2fa135830388d (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.c | 28 |
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; } |
