Fixing Logout via action for the Spring plugin
Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/2d903b53 Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/2d903b53 Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/2d903b53 Branch: refs/heads/master Commit: 2d903b530a3c8b005a0fad91a85cc26d1d46aa11 Parents: 34713e3 Author: Colm O hEigeartaigh <[email protected]> Authored: Wed Dec 7 10:50:41 2016 +0000 Committer: Colm O hEigeartaigh <[email protected]> Committed: Wed Dec 7 10:50:41 2016 +0000 ---------------------------------------------------------------------- .../apache/cxf/fediz/spring/web/FederationLogoutFilter.java | 7 +++++++ .../org/apache/cxf/fediz/integrationtests/Spring2Test.java | 8 ++++++++ 2 files changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/2d903b53/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationLogoutFilter.java ---------------------------------------------------------------------- diff --git a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationLogoutFilter.java b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationLogoutFilter.java index f8f3f3a..e0356a9 100644 --- a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationLogoutFilter.java +++ b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationLogoutFilter.java @@ -21,6 +21,7 @@ package org.apache.cxf.fediz.spring.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.cxf.fediz.core.FederationConstants; import org.apache.cxf.fediz.spring.FederationConfig; import org.springframework.beans.factory.annotation.Required; import org.springframework.security.web.authentication.logout.LogoutFilter; @@ -44,6 +45,12 @@ public class FederationLogoutFilter extends LogoutFilter { @Override protected boolean requiresLogout(HttpServletRequest request, HttpServletResponse response) { + String wa = request.getParameter(FederationConstants.PARAM_ACTION); + if (FederationConstants.ACTION_SIGNOUT.equals(wa) || FederationConstants.ACTION_SIGNOUT_CLEANUP.equals(wa)) { + // Default WS-Federation logout action + return true; + } + if (this.logoutUrl == null) { String contextName = request.getContextPath(); if (contextName == null || contextName.isEmpty()) { http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/2d903b53/systests/spring/src/test/java/org/apache/cxf/fediz/integrationtests/Spring2Test.java ---------------------------------------------------------------------- diff --git a/systests/spring/src/test/java/org/apache/cxf/fediz/integrationtests/Spring2Test.java b/systests/spring/src/test/java/org/apache/cxf/fediz/integrationtests/Spring2Test.java index d9e77ab..f9754ba 100644 --- a/systests/spring/src/test/java/org/apache/cxf/fediz/integrationtests/Spring2Test.java +++ b/systests/spring/src/test/java/org/apache/cxf/fediz/integrationtests/Spring2Test.java @@ -184,6 +184,13 @@ public class Spring2Test extends AbstractTests { } + @Test + @Ignore("Logout not supported with Spring2") + @Override + public void testRPLogoutViaAction() throws Exception { + + } + @Override @Test public void testAliceModifiedSignature() throws Exception { @@ -242,4 +249,5 @@ public class Spring2Test extends AbstractTests { public void testEntityExpansionAttack() throws Exception { } + }
