diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2004-12-19 11:07:22 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2004-12-19 11:07:22 +0000 |
| commit | 74697b19c1160f20cc0e3f40e392b7fa7850b7a5 (patch) | |
| tree | 2fb3fbfdbbd6bf84e74031a8112d539fa64f2e90 | |
| parent | 2e0efac99e7aa3790eab774ccad59deceb03e169 (diff) | |
if available, use profile->msg_relayState to init request in init_request
functions.
| -rw-r--r-- | lasso/id-ff/defederation.c | 22 | ||||
| -rw-r--r-- | lasso/id-ff/login.c | 5 | ||||
| -rw-r--r-- | lasso/id-ff/logout.c | 9 | ||||
| -rw-r--r-- | lasso/id-ff/name_registration.c | 2 |
4 files changed, 22 insertions, 16 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c index ef8fa1b2..209a6864 100644 --- a/lasso/id-ff/defederation.c +++ b/lasso/id-ff/defederation.c @@ -53,9 +53,9 @@ gint lasso_defederation_build_notification_msg(LassoDefederation *defederation) { - LassoProfile *profile; - LassoProvider *remote_provider; - gchar *url = NULL, *query = NULL; + LassoProfile *profile; + LassoProvider *remote_provider; + gchar *url, *query; g_return_val_if_fail(LASSO_IS_DEFEDERATION(defederation), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); @@ -143,7 +143,7 @@ lasso_defederation_init_notification(LassoDefederation *defederation, gchar *rem LassoProfile*profile; LassoProvider *remote_provider; LassoFederation *federation; - LassoSamlNameIdentifier *nameIdentifier = NULL; + LassoSamlNameIdentifier *nameIdentifier; g_return_val_if_fail(LASSO_IS_DEFEDERATION(defederation), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); @@ -200,16 +200,20 @@ lasso_defederation_init_notification(LassoDefederation *defederation, gchar *rem nameIdentifier, LASSO_SIGNATURE_TYPE_WITHX509, LASSO_SIGNATURE_METHOD_RSA_SHA1); - } - if (http_method == LASSO_HTTP_METHOD_REDIRECT) { + if (profile->msg_relayState) { + message(G_LOG_LEVEL_WARNING, + "RelayState was defined but can't be used "\ + "in SOAP Federation Termination Notification"); + } + + } else { /* LASSO_HTTP_METHOD_REDIRECT */ profile->request = lasso_lib_federation_termination_notification_new_full( LASSO_PROVIDER(profile->server)->ProviderID, nameIdentifier, LASSO_SIGNATURE_TYPE_NONE, 0); - } - if (LASSO_IS_LIB_FEDERATION_TERMINATION_NOTIFICATION(profile->request) == FALSE) { - return critical_error(LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED); + LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(profile->request)->RelayState = + g_strdup(profile->msg_relayState); } /* Set the nameIdentifier attribute from content local variable */ diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index 090bfdea..b00ad7a9 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -794,6 +794,7 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID LASSO_SAMLP_REQUEST_ABSTRACT(request)->MinorVersion = LASSO_LIB_MINOR_VERSION_N; LASSO_SAMLP_REQUEST_ABSTRACT(request)->IssueInstant = lasso_get_current_time(); request->ProviderID = g_strdup(LASSO_PROVIDER(LASSO_PROFILE(login)->server)->ProviderID); + request->RelayState = g_strdup(LASSO_PROFILE(login)->msg_relayState); if (http_method == LASSO_HTTP_METHOD_POST) { LASSO_SAMLP_REQUEST_ABSTRACT(request)->sign_method = @@ -804,7 +805,7 @@ lasso_login_init_authn_request(LassoLogin *login, const gchar *remote_providerID LASSO_PROFILE(login)->request = LASSO_NODE(request); if (LASSO_PROFILE(login)->request == NULL) { - return -2; + return critical_error(LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED); } return 0; @@ -867,7 +868,7 @@ lasso_login_init_request(LassoLogin *login, gchar *response_msg, LASSO_PROFILE(login)->server, provider_succint_id_b64); xmlFree(provider_succint_id_b64); - request = LASSO_SAMLP_REQUEST_ABSTRACT(g_object_new(LASSO_TYPE_SAMLP_REQUEST, NULL)); + request = LASSO_SAMLP_REQUEST_ABSTRACT(lasso_samlp_request_new()); request->RequestID = lasso_build_unique_id(32); request->MajorVersion = LASSO_LIB_MAJOR_VERSION_N; request->MinorVersion = LASSO_LIB_MINOR_VERSION_N; diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index 6af090f1..f1d21325 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -349,8 +349,7 @@ lasso_logout_init_request(LassoLogout *logout, char *remote_providerID, nameIdentifier, LASSO_SIGNATURE_TYPE_WITHX509, LASSO_SIGNATURE_METHOD_RSA_SHA1); - } - if (http_method == LASSO_HTTP_METHOD_REDIRECT) { + } else { /* http_method == LASSO_HTTP_METHOD_REDIRECT */ is_http_redirect_get_method = TRUE; profile->request = lasso_lib_logout_request_new_full( LASSO_PROVIDER(profile->server)->ProviderID, @@ -358,9 +357,9 @@ lasso_logout_init_request(LassoLogout *logout, char *remote_providerID, LASSO_SIGNATURE_TYPE_NONE, 0); } - if (LASSO_IS_LIB_LOGOUT_REQUEST(profile->request) == FALSE) { - return critical_error(LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED); - } + if (profile->msg_relayState) + LASSO_LIB_LOGOUT_REQUEST(profile->request)->RelayState = + g_strdup(profile->msg_relayState); /* Set the name identifier attribute with content local variable */ profile->nameIdentifier = g_object_ref(nameIdentifier); diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c index 83868056..e4151d76 100644 --- a/lasso/id-ff/name_registration.c +++ b/lasso/id-ff/name_registration.c @@ -271,6 +271,8 @@ lasso_name_registration_init_request(LassoNameRegistration *name_registration, if (profile->request == NULL) { return critical_error(LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED); } + LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(profile->request)->RelayState = + g_strdup(profile->msg_relayState); profile->http_request_method = http_method; |
