[cpp-sp] branch master updated: SSPCPP-822 - LogoutRequest handling should take Reason attribute into account
Scott Cantor
cantor.2 at osu.edu
Wed Jul 18 13:21:25 EDT 2018
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=318d7ff4a2d434e29b09c87c9a3a056198714764
The following commit(s) were added to refs/heads/master by this push:
new 318d7ff SSPCPP-822 - LogoutRequest handling should take Reason attribute into account
318d7ff is described below
commit 318d7ff4a2d434e29b09c87c9a3a056198714764
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Jul 18 13:20:20 2018 -0400
SSPCPP-822 - LogoutRequest handling should take Reason attribute into account
https://issues.shibboleth.net/jira/browse/SSPCPP-822
---
shibsp/handler/impl/SAML2Logout.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/shibsp/handler/impl/SAML2Logout.cpp b/shibsp/handler/impl/SAML2Logout.cpp
index c163732..fb03d1a 100644
--- a/shibsp/handler/impl/SAML2Logout.cpp
+++ b/shibsp/handler/impl/SAML2Logout.cpp
@@ -261,7 +261,7 @@ void SAML2Logout::receive(DDF& in, ostream& out)
pair<bool,long> SAML2Logout::doRequest(const Application& application, HTTPRequest& request, HTTPResponse& response) const
{
#ifndef SHIBSP_LITE
- // First capture the active session ID.
+ // First capture the active session ID, if any.
SessionCache* cache = application.getServiceProvider().getSessionCache();
string session_id = cache->active(application, request);
@@ -438,10 +438,11 @@ pair<bool,long> SAML2Logout::doRequest(const Application& application, HTTPReque
indexes.insert(sindex.get());
}
- // For a front-channel LogoutRequest, we have to match the information in the request
+ // For a front-channel non-admin LogoutRequest, we have to match the information in the request
// against the current session, if one is known/available.
if (!session_id.empty()) {
- if (!cache->matches(application, request, entity, *nameid, &indexes)) {
+ if (!XMLString::equals(logoutRequest->getReason(),LogoutRequest::REASON_ADMIN)
+ && !cache->matches(application, request, entity, *nameid, &indexes)) {
return sendResponse(
logout_event.get(),
logoutRequest->getID(),
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list