summaryrefslogtreecommitdiffstats
path: root/lasso/id-ff/logout.c
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2007-01-03 21:01:51 +0000
committerFrederic Peters <fpeters@entrouvert.com>2007-01-03 21:01:51 +0000
commit1e19373f58f3e85fa7f8533b3295742d82bbfaae (patch)
tree97de454011a325b99e08767af31b5bc45d8c3705 /lasso/id-ff/logout.c
parent92198cc527b453a724ead9a0ba9610d85f0cd640 (diff)
downloadlasso-1e19373f58f3e85fa7f8533b3295742d82bbfaae.tar.gz
lasso-1e19373f58f3e85fa7f8533b3295742d82bbfaae.tar.xz
lasso-1e19373f58f3e85fa7f8533b3295742d82bbfaae.zip
make ID-FF SLO works even when there are SAMLv2 assertions in the session
Diffstat (limited to 'lasso/id-ff/logout.c')
-rw-r--r--lasso/id-ff/logout.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 199ca931..47513aa7 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -856,7 +856,7 @@ lasso_logout_validate_request(LassoLogout *logout)
/* verify authentication */
assertion_n = lasso_session_get_assertion(profile->session, profile->remote_providerID);
- if (assertion_n == NULL) {
+ if (LASSO_IS_SAML_ASSERTION(assertion_n) == FALSE) {
message(G_LOG_LEVEL_WARNING, "%s has no assertion", profile->remote_providerID);
lasso_profile_set_response_status(profile, LASSO_SAML_STATUS_CODE_REQUEST_DENIED);
return LASSO_PROFILE_ERROR_MISSING_ASSERTION;
@@ -961,8 +961,9 @@ check_soap_support(gchar *key, LassoProvider *provider, LassoProfile *profile)
return; /* original service provider (initiated logout) */
assertion_n = lasso_session_get_assertion(profile->session, provider->ProviderID);
- if (assertion_n == NULL)
+ if (LASSO_IS_SAML_ASSERTION(assertion_n) == FALSE) {
return; /* not authenticated with this provider */
+ }
assertion = LASSO_SAML_ASSERTION(assertion_n);
supported_profiles = lasso_provider_get_metadata_list(provider,