Repository: cxf-fediz Updated Branches: refs/heads/1.2.x-fixes fa101eb8f -> 42f597df3
Added Redirect Logout and fixed parent dependencies Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/b5af2a70 Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/b5af2a70 Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/b5af2a70 Branch: refs/heads/1.2.x-fixes Commit: b5af2a706ff031b2801399e300fbd8fe21a83bdd Parents: fa101eb Author: cschmuell...@talend.com <cschmuell...@talend.com> Authored: Mon Aug 17 14:32:09 2015 +0200 Committer: Colm O hEigeartaigh <cohei...@apache.org> Committed: Mon Aug 17 16:46:30 2015 +0100 ---------------------------------------------------------------------- examples/websphereWebapp/pom.xml | 2 +- plugins/websphere/pom.xml | 7 ++-- .../cxf/fediz/was/tai/FedizInterceptor.java | 40 ++++++++++++-------- systests/websphere/pom.xml | 2 +- 4 files changed, 31 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/b5af2a70/examples/websphereWebapp/pom.xml ---------------------------------------------------------------------- diff --git a/examples/websphereWebapp/pom.xml b/examples/websphereWebapp/pom.xml index c57c8b9..9ce3c30 100644 --- a/examples/websphereWebapp/pom.xml +++ b/examples/websphereWebapp/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.cxf.fediz</groupId> <artifactId>examples</artifactId> - <version>1.2.1-SNAPSHOT</version> + <version>1.2.2-SNAPSHOT</version> </parent> <groupId>org.apache.cxf.fediz.examples</groupId> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/b5af2a70/plugins/websphere/pom.xml ---------------------------------------------------------------------- diff --git a/plugins/websphere/pom.xml b/plugins/websphere/pom.xml index 68fc05e..2806ddf 100644 --- a/plugins/websphere/pom.xml +++ b/plugins/websphere/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.apache.cxf.fediz</groupId> <artifactId>plugin</artifactId> - <version>1.2.1-SNAPSHOT</version> + <version>1.2.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>fediz-websphere</artifactId> @@ -35,8 +35,9 @@ <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> - <!--<version>${servlet.version}</version>--> - <version>3.1.0</version> + <!-- Servlet since version 3 supports logout.--> + <!--<version>${servlet.version}</version>--> + <version>3.0.1</version> <!--<type>jar</type>--> <!--<scope>compile</scope>--> </dependency> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/b5af2a70/plugins/websphere/src/main/java/org/apache/cxf/fediz/was/tai/FedizInterceptor.java ---------------------------------------------------------------------- diff --git a/plugins/websphere/src/main/java/org/apache/cxf/fediz/was/tai/FedizInterceptor.java b/plugins/websphere/src/main/java/org/apache/cxf/fediz/was/tai/FedizInterceptor.java index e28439c..e63b3f8 100644 --- a/plugins/websphere/src/main/java/org/apache/cxf/fediz/was/tai/FedizInterceptor.java +++ b/plugins/websphere/src/main/java/org/apache/cxf/fediz/was/tai/FedizInterceptor.java @@ -77,8 +77,8 @@ public class FedizInterceptor implements TrustAssociationInterceptor { private String configFile; private FedizConfigurator configurator; private RoleToGroupMapper mapper; - private String cookieName; - + private String cookieName = "LtpaToken2"; + /** * @see org.apache.cxf.fediz.was.Constants#PROPERTY_KEY_DIRECT_GROUP_MAPPING */ @@ -256,8 +256,7 @@ public class FedizInterceptor implements TrustAssociationInterceptor { Cookie[] cookies = req.getCookies(); if (cookies != null) { for (Cookie c : cookies) { - // TODO Make Cookie Name customizable - if ("LtpaToken2".equals(c.getName())) { + if (cookieName.equals(c.getName())) { LOG.debug("User is already authenticated. Fediz TAI Interceptor will not be invoked"); isTargetInterceptor = false; break; @@ -313,10 +312,7 @@ public class FedizInterceptor implements TrustAssociationInterceptor { @Override protected boolean signoutCleanup(HttpServletRequest request, HttpServletResponse response) { - HttpSession session = request.getSession(); - session.removeAttribute(Constants.SECURITY_TOKEN_SESSION_ATTRIBUTE_KEY); - session.removeAttribute(Constants.SUBJECT_TOKEN_KEY); - session.invalidate(); + terminateSession(request); Cookie cookie = new Cookie(Constants.PROPERTY_SESSION_COOKIE_NAME, ""); cookie.setMaxAge(0); response.addCookie(cookie); @@ -324,23 +320,30 @@ public class FedizInterceptor implements TrustAssociationInterceptor { request.logout(); } catch (ServletException e) { LOG.error("Could not logout users"); - // e.printStackTrace(); } - // WSSecurityHelper.revokeSSOCookies(request, response); + FedizContext fedCtx = getFederationContext(request); + String logoutRedirectUrl = fedCtx.getLogoutRedirectTo(); + String contextPath = request.getContextPath(); + try { + if (logoutRedirectUrl != null && logoutRedirectUrl.length() > 0) { + response.sendRedirect(contextPath + logoutRedirectUrl); + } else { + response.sendRedirect(contextPath); + } + } catch (IOException e) { + LOG.error("Could not redirect to logout page"); + } + return super.signoutCleanup(request, response); } @Override protected boolean signout(HttpServletRequest request, HttpServletResponse response) { - HttpSession session = request.getSession(); - session.removeAttribute(Constants.SECURITY_TOKEN_SESSION_ATTRIBUTE_KEY); - session.removeAttribute(Constants.SUBJECT_TOKEN_KEY); - session.invalidate(); + terminateSession(request); try { request.logout(); } catch (ServletException e) { LOG.error("Could not logout users"); - // e.printStackTrace(); } return super.signout(request, response); } @@ -400,6 +403,13 @@ public class FedizInterceptor implements TrustAssociationInterceptor { throw new WebTrustAssociationFailedException(e.getMessage()); } } + + protected void terminateSession(HttpServletRequest request) { + HttpSession session = request.getSession(); + session.removeAttribute(Constants.SECURITY_TOKEN_SESSION_ATTRIBUTE_KEY); + session.removeAttribute(Constants.SUBJECT_TOKEN_KEY); + session.invalidate(); + } protected void resumeRequest(HttpServletRequest request, HttpServletResponse response) { String wctx = request.getParameter(FederationConstants.PARAM_CONTEXT); http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/b5af2a70/systests/websphere/pom.xml ---------------------------------------------------------------------- diff --git a/systests/websphere/pom.xml b/systests/websphere/pom.xml index 153a80a..91f03df 100644 --- a/systests/websphere/pom.xml +++ b/systests/websphere/pom.xml @@ -22,7 +22,7 @@ <parent> <groupId>org.apache.cxf.fediz</groupId> <artifactId>fediz-systests</artifactId> - <version>1.2.1-SNAPSHOT</version> + <version>1.2.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.apache.cxf.fediz.systests</groupId>