diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-03 16:25:00 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-03 16:25:00 +0000 |
| commit | 595d9b2987127e19256446b211e581818d61cd09 (patch) | |
| tree | daf7407f88dd339e1d449a4f93555cdca0370f52 | |
| parent | 1e05cd748c841830bc6a7d7509b42fa81864cd1e (diff) | |
Updated of lasso_logout_validate_request() : now it returns a code error of -301 (unsupported profile) if an IDP receiving a LogoutRequest via SOAP detects other SPs dont support SOAP method.
| -rw-r--r-- | lasso/id-ff/logout.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index 897f25b1..483d8fee 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -760,9 +760,12 @@ lasso_logout_process_response_msg(LassoLogout *logout, /* set the msg_relayState */ profile->msg_relayState = lasso_node_get_child_content(profile->response, "RelayState", lassoLibHRef, NULL); - /* Only if SOAP method, then remove assertion */ + /* Only if SOAP method or, if IDP provider type and HTTP Redirect, then remove assertion */ if ( (response_method == lassoHttpMethodSoap) || (profile->provider_type == lassoProviderTypeIdp && response_method == lassoHttpMethodRedirect) ) { - lasso_session_remove_assertion(profile->session, profile->remote_providerID); + ret = lasso_session_remove_assertion(profile->session, profile->remote_providerID); + if (ret < 0) { + goto done; + } if (profile->provider_type == lassoProviderTypeIdp && logout->providerID_index > 0) { logout->providerID_index--; } @@ -980,7 +983,7 @@ lasso_logout_validate_request(LassoLogout *logout) if (all_http_soap==FALSE) { statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeUnsupportedProfile); - ret = -1; + ret = LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE; goto done; } } |
