diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2006-11-07 12:44:32 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2006-11-07 12:44:32 +0000 |
commit | aec4544976d306992ece769faeb55f8850b51dcb (patch) | |
tree | 16b663f41bcf4e1a5e94976af388d22e88cb7f79 /lasso/id-ff | |
parent | 0b9baa3518d5cac61d17d3c475ad68f79ba22b93 (diff) | |
download | lasso-aec4544976d306992ece769faeb55f8850b51dcb.tar.gz lasso-aec4544976d306992ece769faeb55f8850b51dcb.tar.xz lasso-aec4544976d306992ece769faeb55f8850b51dcb.zip |
fixed url/query construction for endpoints with query part (zxid)
Diffstat (limited to 'lasso/id-ff')
-rw-r--r-- | lasso/id-ff/defederation.c | 7 | ||||
-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_registration.c | 4 |
4 files changed, 18 insertions, 13 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c index ec770135..b5b74c40 100644 --- a/lasso/id-ff/defederation.c +++ b/lasso/id-ff/defederation.c @@ -113,7 +113,7 @@ lasso_defederation_build_notification_msg(LassoDefederation *defederation) return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); profile->msg_body = NULL; g_free(url); g_free(query); @@ -375,9 +375,10 @@ lasso_defederation_validate_notification(LassoDefederation *defederation) /* if a relay state, then build the query part */ if (profile->msg_relayState) { gchar *url; - url = g_strdup_printf("%s?RelayState=%s", - profile->msg_url, profile->msg_relayState); + gchar *query = g_strdup_printf("RelayState=%s", profile->msg_relayState); + url = lasso_concat_url_query(profile->msg_url, query); g_free(profile->msg_url); + g_free(query); profile->msg_url = url; } } diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index 6f11fa4f..871e420c 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -752,13 +752,17 @@ lasso_login_build_artifact_msg(LassoLogin *login, LassoHttpMethod http_method) if (http_method == LASSO_HTTP_METHOD_REDIRECT) { xmlChar *escaped_artifact = xmlURIEscapeStr(b64_samlArt, NULL); + gchar *query; + if (relayState == NULL) { - profile->msg_url = g_strdup_printf("%s?SAMLart=%s", url, escaped_artifact); + query = g_strdup_printf("SAMLart=%s", escaped_artifact); } else { - profile->msg_url = g_strdup_printf( - "%s?SAMLart=%s&RelayState=%s", - url, escaped_artifact, relayState); + query = g_strdup_printf("SAMLart=%s&RelayState=%s", + escaped_artifact, relayState); } + profile->msg_url = lasso_concat_url_query(url, query); + g_free(query); + xmlFree(escaped_artifact); } @@ -878,7 +882,7 @@ lasso_login_build_authn_request_msg(LassoLogin *login) return critical_error(LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL); } - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); profile->msg_body = NULL; g_free(query); g_free(url); diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index f62b2ee5..23468f9a 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -120,7 +120,7 @@ lasso_logout_build_request_msg(LassoLogout *logout) return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } /* build the msg_url */ - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); g_free(url); g_free(query); profile->msg_body = NULL; @@ -231,7 +231,7 @@ lasso_logout_build_response_msg(LassoLogout *logout) g_free(url); return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); profile->msg_body = NULL; g_free(url); g_free(query); @@ -651,7 +651,7 @@ lasso_logout_process_response_msg(LassoLogout *logout, gchar *response_msg) g_free(url); return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); g_free(url); g_free(query); profile->msg_body = NULL; diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c index 79db2910..eeb21a01 100644 --- a/lasso/id-ff/name_registration.c +++ b/lasso/id-ff/name_registration.c @@ -103,7 +103,7 @@ lasso_name_registration_build_request_msg(LassoNameRegistration *name_registrati return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } /* build the msg_url */ - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); profile->msg_body = NULL; g_free(url); g_free(query); @@ -186,7 +186,7 @@ lasso_name_registration_build_response_msg(LassoNameRegistration *name_registrat return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED); } /* build the msg_url */ - profile->msg_url = g_strdup_printf("%s?%s", url, query); + profile->msg_url = lasso_concat_url_query(url, query); g_free(url); g_free(query); profile->msg_body = NULL; |