diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2007-01-03 21:01:51 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2007-01-03 21:01:51 +0000 |
commit | 1e19373f58f3e85fa7f8533b3295742d82bbfaae (patch) | |
tree | 97de454011a325b99e08767af31b5bc45d8c3705 /lasso/id-ff/logout.c | |
parent | 92198cc527b453a724ead9a0ba9610d85f0cd640 (diff) | |
download | lasso-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.c | 5 |
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, |