[cpp-sp] 02/02: SSPCPP-891 - Logout notifications are depending on access to SP session

Scott Cantor cantor.2 at osu.edu
Tue Mar 10 11:24:12 EDT 2020


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository cpp-sp.

View the commit online:
http://git.shibboleth.net/view/?p=cpp-sp.git;a=commit;h=6199e3e6fc710dde076a967da830fdcc5592d59a

commit 6199e3e6fc710dde076a967da830fdcc5592d59a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Mar 10 11:22:10 2020 -0400

    SSPCPP-891 - Logout notifications are depending on access to SP session
    
    https://issues.shibboleth.net/jira/browse/SSPCPP-891
---
 shibsp/handler/impl/SAML2Logout.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/shibsp/handler/impl/SAML2Logout.cpp b/shibsp/handler/impl/SAML2Logout.cpp
index d8e3a41..f07eef1 100644
--- a/shibsp/handler/impl/SAML2Logout.cpp
+++ b/shibsp/handler/impl/SAML2Logout.cpp
@@ -132,6 +132,7 @@ namespace shibsp {
         vector<string> m_bindings;
         map< string,boost::shared_ptr<MessageEncoder> > m_encoders;
         auto_ptr_char m_protocol;
+        bool m_notifyWithoutSession;
 #endif
     };
 
@@ -157,6 +158,11 @@ SAML2Logout::SAML2Logout(const DOMElement* e, const char* appId, bool deprecatio
     m_preserve.push_back("entityID");
     m_preserve.push_back("RelayState");
 
+    pair<bool, bool> flag = getBool("notifyWithoutSession", shibspconstants::ASCII_SHIBSPCONFIG_NS);
+    if (!flag.first)
+        flag = getBool("notifyWithoutSession");
+    m_notifyWithoutSession = flag.first && flag.second;
+
     if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
         SAMLConfig& conf = SAMLConfig::getConfig();
 
@@ -494,7 +500,7 @@ pair<bool,long> SAML2Logout::doRequest(const Application& application, HTTPReque
         }
 
         if (m_decoder->isUserAgentPresent()) {
-            if (!session_id.empty()) {
+            if (!session_id.empty() || m_notifyWithoutSession) {
                 // Pass control to the first front channel notification point, if any.
                 map<string,string> parammap;
                 if (!relayState.empty())

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list