summaryrefslogtreecommitdiffstats
path: root/lasso/id-ff
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-11-07 12:44:32 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-11-07 12:44:32 +0000
commitaec4544976d306992ece769faeb55f8850b51dcb (patch)
tree16b663f41bcf4e1a5e94976af388d22e88cb7f79 /lasso/id-ff
parent0b9baa3518d5cac61d17d3c475ad68f79ba22b93 (diff)
downloadlasso-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.c7
-rw-r--r--lasso/id-ff/login.c14
-rw-r--r--lasso/id-ff/logout.c6
-rw-r--r--lasso/id-ff/name_registration.c4
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;