diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2004-12-18 18:36:54 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2004-12-18 18:36:54 +0000 |
commit | 2e0efac99e7aa3790eab774ccad59deceb03e169 (patch) | |
tree | 3b6ea66d0eac4213388ea6cd4d580b2de7e87072 | |
parent | 539cd7daa1d767dba06d91427a120fa0f24bac21 (diff) | |
download | lasso-2e0efac99e7aa3790eab774ccad59deceb03e169.tar.gz lasso-2e0efac99e7aa3790eab774ccad59deceb03e169.tar.xz lasso-2e0efac99e7aa3790eab774ccad59deceb03e169.zip |
Moved LassoProfile->nameIdentifier from char* to LassoSamlNameIdentifier*,
gaining back access to the nameFormat added late before 0.5.
There are no bindings for LassoSamlNameIdentifier; as a temporary and
compatible measure; profile->nameIdentifier in bindings continues to
return a char* (profile->nameIdentifier->content).
At the same time the same change has been done for
LassoNameRegistration->oldNameIdentifier.
-rw-r--r-- | lasso/id-ff/defederation.c | 6 | ||||
-rw-r--r-- | lasso/id-ff/login.c | 14 | ||||
-rw-r--r-- | lasso/id-ff/logout.c | 6 | ||||
-rw-r--r-- | lasso/id-ff/name_identifier_mapping.c | 4 | ||||
-rw-r--r-- | lasso/id-ff/name_registration.c | 36 | ||||
-rw-r--r-- | lasso/id-ff/name_registration.h | 2 | ||||
-rw-r--r-- | lasso/id-ff/profile.c | 3 | ||||
-rw-r--r-- | lasso/id-ff/profile.h | 2 | ||||
-rw-r--r-- | swig/Lasso.i | 28 |
9 files changed, 58 insertions, 43 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c index 23ca522b..ef8fa1b2 100644 --- a/lasso/id-ff/defederation.c +++ b/lasso/id-ff/defederation.c @@ -213,7 +213,7 @@ lasso_defederation_init_notification(LassoDefederation *defederation, gchar *rem } /* Set the nameIdentifier attribute from content local variable */ - profile->nameIdentifier = g_strdup(nameIdentifier->content); + profile->nameIdentifier = g_object_ref(nameIdentifier); /* remove federation with remote provider id */ if (profile->identity == NULL) { @@ -289,8 +289,8 @@ lasso_defederation_process_notification_msg(LassoDefederation *defederation, cha if (format == LASSO_MESSAGE_FORMAT_QUERY) profile->http_request_method = LASSO_HTTP_METHOD_REDIRECT; - profile->nameIdentifier = g_strdup(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION( - profile->request)->NameIdentifier->content); + profile->nameIdentifier = g_object_ref(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION( + profile->request)->NameIdentifier); /* get the RelayState (only available in redirect mode) */ if (LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(profile->request)->RelayState) diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index 4f8841d6..090bfdea 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -104,7 +104,7 @@ lasso_login_build_assertion(LassoLogin *login, as = lasso_lib_authentication_statement_new_full(authenticationMethod, authenticationInstant, reauthenticateOnOrAfter, NULL, nameIdentifier); - profile->nameIdentifier = g_strdup(nameIdentifier->content); + profile->nameIdentifier = nameIdentifier; } else { as = lasso_lib_authentication_statement_new_full(authenticationMethod, authenticationInstant, reauthenticateOnOrAfter, @@ -257,8 +257,8 @@ lasso_login_process_federation(LassoLogin *login, gboolean is_consent_obtained) return LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND; } - LASSO_PROFILE(login)->nameIdentifier = g_strdup( - LASSO_SAML_NAME_IDENTIFIER(federation->local_nameIdentifier)->content); + LASSO_PROFILE(login)->nameIdentifier = g_object_ref( + LASSO_SAML_NAME_IDENTIFIER(federation->local_nameIdentifier)); return 0; } @@ -302,7 +302,7 @@ lasso_login_process_federation(LassoLogin *login, gboolean is_consent_obtained) } LASSO_PROFILE(login)->nameIdentifier = - g_strdup(LASSO_SAML_NAME_IDENTIFIER(federation->local_nameIdentifier)->content); + g_object_ref(LASSO_SAML_NAME_IDENTIFIER(federation->local_nameIdentifier)); return ret; } @@ -351,9 +351,9 @@ lasso_login_process_response_status_and_assertion(LassoLogin *login) return LASSO_ERROR_UNDEFINED; } - profile->nameIdentifier = LASSO_SAML_SUBJECT_STATEMENT_ABSTRACT( - response->Assertion->AuthenticationStatement - )->Subject->NameIdentifier->content; + profile->nameIdentifier = g_object_ref(LASSO_SAML_SUBJECT_STATEMENT_ABSTRACT( + response->Assertion->AuthenticationStatement + )->Subject->NameIdentifier); if (LASSO_PROFILE(login)->nameIdentifier == NULL) return LASSO_ERROR_UNDEFINED; diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index afbf48af..6af090f1 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -363,7 +363,7 @@ lasso_logout_init_request(LassoLogout *logout, char *remote_providerID, } /* Set the name identifier attribute with content local variable */ - profile->nameIdentifier = g_strdup(nameIdentifier->content); + profile->nameIdentifier = g_object_ref(nameIdentifier); /* if logout request from a SP and if an HTTP Redirect/GET method, then remove assertion */ if (remote_provider->role == LASSO_PROVIDER_ROLE_IDP && is_http_redirect_get_method) { @@ -426,8 +426,8 @@ gint lasso_logout_process_request_msg(LassoLogout *logout, char *request_msg) if (format == LASSO_MESSAGE_FORMAT_QUERY) profile->http_request_method = LASSO_HTTP_METHOD_REDIRECT; - profile->nameIdentifier = g_strdup( - LASSO_LIB_LOGOUT_REQUEST(profile->request)->NameIdentifier->content); + profile->nameIdentifier = g_object_ref( + LASSO_LIB_LOGOUT_REQUEST(profile->request)->NameIdentifier); return profile->signature_status; } diff --git a/lasso/id-ff/name_identifier_mapping.c b/lasso/id-ff/name_identifier_mapping.c index 620c8c09..8768418e 100644 --- a/lasso/id-ff/name_identifier_mapping.c +++ b/lasso/id-ff/name_identifier_mapping.c @@ -227,8 +227,8 @@ lasso_name_identifier_mapping_process_request_msg(LassoNameIdentifierMapping *ma profile->http_request_method = LASSO_HTTP_METHOD_SOAP; - profile->nameIdentifier = g_strdup(LASSO_LIB_NAME_IDENTIFIER_MAPPING_REQUEST( - profile->request)->NameIdentifier->content); + profile->nameIdentifier = g_object_ref(LASSO_LIB_NAME_IDENTIFIER_MAPPING_REQUEST( + profile->request)->NameIdentifier); return profile->signature_status; } diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c index 3e78e627..83868056 100644 --- a/lasso/id-ff/name_registration.c +++ b/lasso/id-ff/name_registration.c @@ -215,8 +215,8 @@ lasso_name_registration_init_request(LassoNameRegistration *name_registration, oldNameIdentifier = g_object_ref(idpNameIdentifier); } - profile->nameIdentifier = g_strdup(spNameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup(oldNameIdentifier->content); + profile->nameIdentifier = g_object_ref(spNameIdentifier); + name_registration->oldNameIdentifier = g_object_ref(oldNameIdentifier); } else { /* if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) { */ if (federation->local_nameIdentifier == NULL) { message(G_LOG_LEVEL_CRITICAL, "Local name identifier not found"); @@ -236,12 +236,11 @@ lasso_name_registration_init_request(LassoNameRegistration *name_registration, idpNameIdentifier->Format = g_strdup(LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED); if (spNameIdentifier) { - profile->nameIdentifier = g_strdup(spNameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup(profile->nameIdentifier); + profile->nameIdentifier = g_object_ref(spNameIdentifier); + name_registration->oldNameIdentifier = g_object_ref(spNameIdentifier); } else { - profile->nameIdentifier = g_strdup(idpNameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup( - oldNameIdentifier->content); + profile->nameIdentifier = g_object_ref(idpNameIdentifier); + name_registration->oldNameIdentifier = g_object_ref(oldNameIdentifier); } } @@ -325,22 +324,23 @@ gint lasso_name_registration_process_request_msg(LassoNameRegistration *name_reg profile->request)->SPProvidedNameIdentifier; if (remote_provider->role == LASSO_PROVIDER_ROLE_IDP) { if (nameIdentifier) { - profile->nameIdentifier = g_strdup(nameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup(profile->nameIdentifier); + profile->nameIdentifier = g_object_ref(nameIdentifier); + name_registration->oldNameIdentifier = g_object_ref( + profile->nameIdentifier); } else { - profile->nameIdentifier = g_strdup( + profile->nameIdentifier = g_object_ref( LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST( - profile->request)->IDPProvidedNameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup( + profile->request)->IDPProvidedNameIdentifier); + name_registration->oldNameIdentifier = g_object_ref( LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST( - profile->request)->OldProvidedNameIdentifier->content); + profile->request)->OldProvidedNameIdentifier); } } if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) { - profile->nameIdentifier = g_strdup(nameIdentifier->content); - name_registration->oldNameIdentifier = g_strdup( - LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST( - profile->request)->OldProvidedNameIdentifier->content); + profile->nameIdentifier = g_object_ref(nameIdentifier); + name_registration->oldNameIdentifier = g_object_ref( + LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST( + profile->request)->OldProvidedNameIdentifier); } @@ -522,7 +522,7 @@ lasso_name_registration_validate_request(LassoNameRegistration *name_registratio /*****************************************************************************/ static struct XmlSnippet schema_snippets[] = { - { "OldNameIdentifier", SNIPPET_CONTENT, + { "OldNameIdentifier", SNIPPET_NODE_IN_CHILD, G_STRUCT_OFFSET(LassoNameRegistration, oldNameIdentifier) }, { NULL, 0, 0} }; diff --git a/lasso/id-ff/name_registration.h b/lasso/id-ff/name_registration.h index 60a461d6..8ddeef45 100644 --- a/lasso/id-ff/name_registration.h +++ b/lasso/id-ff/name_registration.h @@ -53,7 +53,7 @@ typedef struct _LassoNameRegistrationClass LassoNameRegistrationClass; struct _LassoNameRegistration { LassoProfile parent; - gchar *oldNameIdentifier; + LassoSamlNameIdentifier *oldNameIdentifier; }; struct _LassoNameRegistrationClass { diff --git a/lasso/id-ff/profile.c b/lasso/id-ff/profile.c index b0989e3f..822504fc 100644 --- a/lasso/id-ff/profile.c +++ b/lasso/id-ff/profile.c @@ -263,7 +263,8 @@ lasso_profile_set_session_from_dump(LassoProfile *ctx, const gchar *dump) static struct XmlSnippet schema_snippets[] = { { "Request", SNIPPET_NODE_IN_CHILD, G_STRUCT_OFFSET(LassoProfile, request) }, { "Response", SNIPPET_NODE_IN_CHILD, G_STRUCT_OFFSET(LassoProfile, response) }, - { "NameIdentifier", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, nameIdentifier) }, + { "NameIdentifier", SNIPPET_NODE_IN_CHILD, + G_STRUCT_OFFSET(LassoProfile, nameIdentifier) }, { "RemoteProviderID", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, remote_providerID) }, { "MsgUrl", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, msg_url) }, { "MsgBody", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, msg_body) }, diff --git a/lasso/id-ff/profile.h b/lasso/id-ff/profile.h index f151251b..f42c8aac 100644 --- a/lasso/id-ff/profile.h +++ b/lasso/id-ff/profile.h @@ -77,7 +77,7 @@ struct _LassoProfile { LassoNode *request; LassoNode *response; - gchar *nameIdentifier; /* XXX: shouldn't it be LassoSamlNameIdentifier ? */ + LassoSamlNameIdentifier *nameIdentifier; gchar *remote_providerID; diff --git a/swig/Lasso.i b/swig/Lasso.i index 2ef10ac0..73cbbd32 100644 --- a/swig/Lasso.i +++ b/swig/Lasso.i @@ -1510,7 +1510,9 @@ gchar *LassoDefederation_msgUrl_get(LassoDefederation *self) { /* nameIdentifier */ #define LassoDefederation_get_nameIdentifier LassoDefederation_nameIdentifier_get gchar *LassoDefederation_nameIdentifier_get(LassoDefederation *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* remoteProviderId */ @@ -1795,7 +1797,9 @@ gchar *LassoLogin_msgUrl_get(LassoLogin *self) { /* nameIdentifier */ #define LassoLogin_get_nameIdentifier LassoLogin_nameIdentifier_get gchar *LassoLogin_nameIdentifier_get(LassoLogin *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* remoteProviderId */ @@ -2044,7 +2048,9 @@ gchar *LassoLogout_msgUrl_get(LassoLogout *self) { /* nameIdentifier */ #define LassoLogout_get_nameIdentifier LassoLogout_nameIdentifier_get gchar *LassoLogout_nameIdentifier_get(LassoLogout *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* remoteProviderId */ @@ -2309,7 +2315,9 @@ gchar *LassoLecp_msgUrl_get(LassoLecp *self) { /* nameIdentifier */ #define LassoLecp_get_nameIdentifier LassoLecp_nameIdentifier_get gchar *LassoLecp_nameIdentifier_get(LassoLecp *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* remoteProviderId */ @@ -2519,7 +2527,9 @@ gchar *LassoNameIdentifierMapping_msgUrl_get(LassoNameIdentifierMapping *self) { /* nameIdentifier */ #define LassoNameIdentifierMapping_get_nameIdentifier LassoNameIdentifierMapping_nameIdentifier_get gchar *LassoNameIdentifierMapping_nameIdentifier_get(LassoNameIdentifierMapping *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* targetNameIdentifier */ @@ -2724,13 +2734,17 @@ gchar *LassoNameRegistration_msgUrl_get(LassoNameRegistration *self) { /* nameIdentifier */ #define LassoNameRegistration_get_nameIdentifier LassoNameRegistration_nameIdentifier_get gchar *LassoNameRegistration_nameIdentifier_get(LassoNameRegistration *self) { - return LASSO_PROFILE(self)->nameIdentifier; + if (LASSO_PROFILE(self)->nameIdentifier) + return g_strdup(LASSO_PROFILE(self)->nameIdentifier->content); + return NULL; } /* oldNameIdentifier */ #define LassoNameRegistration_get_oldNameIdentifier LassoNameRegistration_oldNameIdentifier_get gchar *LassoNameRegistration_oldNameIdentifier_get(LassoNameRegistration *self) { - return self->oldNameIdentifier; + if (self->oldNameIdentifier) + return g_strdup(self->oldNameIdentifier->content); + return NULL; } /* remoteProviderId */ |