summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-09-01 16:49:17 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-09-01 16:49:17 +0000
commitb67da551e762b2a161d35f9c67d412505604c598 (patch)
tree30da28713bac93d12f8a50d5c69fde35ec72cdc0
parenteb9391ec2da2032ed0e169d6badffdfcaf09cb09 (diff)
Removed lasso_session_remove_assertion() in lasso_logout_init_request() at IDP with HTTP Redirect method, added remove of assertion if at IDP and HTTP redirect
-rw-r--r--lasso/id-ff/logout.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 537d040c..897f25b1 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -527,7 +527,7 @@ lasso_logout_init_request(LassoLogout *logout,
profile->nameIdentifier = content;
/* if logout request from a SP and if an HTTP Redirect / GET method, then remove assertion */
- if (is_http_redirect_get_method == TRUE) {
+ if (profile->provider_type == lassoProviderTypeSp && is_http_redirect_get_method == TRUE) {
lasso_session_remove_assertion(profile->session, profile->remote_providerID);
}
@@ -761,7 +761,7 @@ lasso_logout_process_response_msg(LassoLogout *logout,
profile->msg_relayState = lasso_node_get_child_content(profile->response, "RelayState", lassoLibHRef, NULL);
/* Only if SOAP method, then remove assertion */
- if (response_method == lassoHttpMethodSoap) {
+ if ( (response_method == lassoHttpMethodSoap) || (profile->provider_type == lassoProviderTypeIdp && response_method == lassoHttpMethodRedirect) ) {
lasso_session_remove_assertion(profile->session, profile->remote_providerID);
if (profile->provider_type == lassoProviderTypeIdp && logout->providerID_index > 0) {
logout->providerID_index--;
@@ -805,6 +805,8 @@ lasso_logout_process_response_msg(LassoLogout *logout,
**/
gint lasso_logout_reset_providerID_index(LassoLogout *logout)
{
+ g_return_val_if_fail(LASSO_IS_LOGOUT(logout), -1);
+
logout->providerID_index = 0;
return 0;