diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2006-11-15 16:41:55 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2006-11-15 16:41:55 +0000 |
| commit | 0f11bb2491fd38e5b19484a6367e2d98452579a4 (patch) | |
| tree | d533b2da248da2f13261c2a16d2e7f6c69e479a9 | |
| parent | 011bc4456936801ed9ca1a438bf6571e55246480 (diff) | |
fixed up lasso_saml20_logout_process_response_msg function name; and remove
assertion on SP when initiated on SP.
| -rw-r--r-- | lasso/id-ff/logout.c | 2 | ||||
| -rw-r--r-- | lasso/saml-2.0/logout.c | 10 | ||||
| -rw-r--r-- | lasso/saml-2.0/logoutprivate.h | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index 1857433e..3e43cae9 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -570,7 +570,7 @@ lasso_logout_process_response_msg(LassoLogout *logout, gchar *response_msg) profile = LASSO_PROFILE(logout); IF_SAML2(profile) { - return lasso_saml20_process_response_msg(logout, response_msg); + return lasso_saml20_logout_process_response_msg(logout, response_msg); } /* before verify if profile->response is set */ diff --git a/lasso/saml-2.0/logout.c b/lasso/saml-2.0/logout.c index 7f223ce3..5cfd2e2d 100644 --- a/lasso/saml-2.0/logout.c +++ b/lasso/saml-2.0/logout.c @@ -498,7 +498,7 @@ lasso_saml20_logout_build_response_msg(LassoLogout *logout) } int -lasso_saml20_process_response_msg(LassoLogout *logout, const char *response_msg) +lasso_saml20_logout_process_response_msg(LassoLogout *logout, const char *response_msg) { LassoProfile *profile = LASSO_PROFILE(logout); LassoHttpMethod response_method; @@ -578,7 +578,7 @@ lasso_saml20_process_response_msg(LassoLogout *logout, const char *response_msg) /* if SOAP method or, if IDP provider type and HTTP Redirect, * then remove assertion */ - if ( response_method == LASSO_HTTP_METHOD_SOAP || + if (response_method == LASSO_HTTP_METHOD_SOAP || (remote_provider->role == LASSO_PROVIDER_ROLE_SP && response_method == LASSO_HTTP_METHOD_REDIRECT) ) { lasso_session_remove_assertion(profile->session, profile->remote_providerID); @@ -613,6 +613,12 @@ lasso_saml20_process_response_msg(LassoLogout *logout, const char *response_msg) } } + /* if at SP */ + if (remote_provider->role == LASSO_PROVIDER_ROLE_IDP && + response_method == LASSO_HTTP_METHOD_REDIRECT) { + lasso_session_remove_assertion(profile->session, profile->remote_providerID); + } + return rc; } diff --git a/lasso/saml-2.0/logoutprivate.h b/lasso/saml-2.0/logoutprivate.h index afb5b05b..54ef1b41 100644 --- a/lasso/saml-2.0/logoutprivate.h +++ b/lasso/saml-2.0/logoutprivate.h @@ -42,7 +42,7 @@ int lasso_saml20_logout_validate_request(LassoLogout *logout); int lasso_saml20_logout_build_response_msg(LassoLogout *logout); -int lasso_saml20_process_response_msg(LassoLogout *logout, const char *response_msg); +int lasso_saml20_logout_process_response_msg(LassoLogout *logout, const char *response_msg); #ifdef __cplusplus } |
