From 4bd7b522cb1d6e8c011a0513949bab8c5c5a5ecb Mon Sep 17 00:00:00 2001 From: "Marvin S. Addison" Date: Tue, 21 Sep 2010 15:52:16 +0000 Subject: [PATCH] CASC-33 Logging changes to help confirm functionality of logout valves. Fix typo in regular expression-based logout valve class name. --- .../client/tomcat/v6/AbstractCasRealm.java | 6 ++++++ .../client/tomcat/v6/AbstractLogoutValve.java | 19 ++++++++++++++----- .../client/tomcat/v6/AssertionCasRealm.java | 7 +++++++ .../tomcat/v6/Cas10CasAuthenticator.java | 2 +- .../tomcat/v6/Cas20CasAuthenticator.java | 2 +- .../tomcat/v6/Cas20ProxyCasAuthenticator.java | 2 +- .../client/tomcat/v6/PropertiesCasRealm.java | 1 + .../client/tomcat/v6/ProxyCallbackValve.java | 1 + ...Value.java => RegExpBasedLogoutValve.java} | 3 ++- .../client/tomcat/v6/Saml11Authenticator.java | 2 +- .../client/tomcat/v6/UrlBasedLogoutValve.java | 1 + 11 files changed, 36 insertions(+), 10 deletions(-) rename cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/{RegExpBasedLogoutValue.java => RegExpBasedLogoutValve.java} (93%) diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractCasRealm.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractCasRealm.java index d0133d6..213374b 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractCasRealm.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractCasRealm.java @@ -8,6 +8,8 @@ package org.jasig.cas.client.tomcat.v6; import java.security.Principal; import org.apache.catalina.realm.RealmBase; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.jasig.cas.client.tomcat.CasRealm; /** @@ -18,6 +20,10 @@ import org.jasig.cas.client.tomcat.CasRealm; * */ public abstract class AbstractCasRealm extends RealmBase implements CasRealm { + /** Logger instance */ + protected final Log log = LogFactory.getLog(getClass()); + + /** {@inheritDoc} */ public Principal authenticate(final Principal p) { return getDelegate().authenticate(p); diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractLogoutValve.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractLogoutValve.java index 1bbf15d..1964df3 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractLogoutValve.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AbstractLogoutValve.java @@ -8,6 +8,7 @@ package org.jasig.cas.client.tomcat.v6; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.jasig.cas.client.util.AbstractCasFilter; +import org.jasig.cas.client.validation.Assertion; import javax.servlet.ServletException; import javax.servlet.http.HttpSession; @@ -24,21 +25,29 @@ import java.io.IOException; public abstract class AbstractLogoutValve extends AbstractLifecycleValve { public final void invoke(final Request request, final Response response) throws IOException, ServletException { - if (!isLogoutRequest(request)) { - log.debug("Current request URI [ " + request.getRequestURI() + "] is not a logout request."); + this.log.debug("URI is not a logout request: " + request.getRequestURI()); getNext().invoke(request, response); return; } + this.log.debug("Processing logout request from CAS server."); + Assertion assertion = null; final HttpSession httpSession = request.getSession(false); - if (httpSession != null) { - httpSession.removeAttribute(AbstractCasFilter.CONST_CAS_ASSERTION); + assertion = (Assertion) httpSession.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION); + if (assertion != null) { + httpSession.removeAttribute(AbstractCasFilter.CONST_CAS_ASSERTION); + } + } + + if (assertion != null) { + this.log.info("Succesfully logged out " + assertion.getPrincipal()); + } else { + this.log.info("Session already ended."); } final String redirectUrl = constructRedirectUrl(request); - if (redirectUrl != null) { response.sendRedirect(redirectUrl); } diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AssertionCasRealm.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AssertionCasRealm.java index 5cd8f94..731bede 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AssertionCasRealm.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/AssertionCasRealm.java @@ -5,6 +5,7 @@ */ package org.jasig.cas.client.tomcat.v6; +import org.apache.catalina.LifecycleException; import org.jasig.cas.client.tomcat.AssertionCasRealmDelegate; import org.jasig.cas.client.tomcat.CasRealm; @@ -20,6 +21,12 @@ import org.jasig.cas.client.tomcat.CasRealm; */ public class AssertionCasRealm extends AbstractCasRealm { private final AssertionCasRealmDelegate delegate = new AssertionCasRealmDelegate(); + + /** {@inheritDoc} */ + public void start() throws LifecycleException { + super.start(); + this.log.info("Startup completed."); + } /** * @param name Name of the attribute in the principal that contains role data. diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas10CasAuthenticator.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas10CasAuthenticator.java index e351c27..02f83e1 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas10CasAuthenticator.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas10CasAuthenticator.java @@ -33,6 +33,6 @@ public class Cas10CasAuthenticator extends AbstractCasAuthenticator { super.start(); this.ticketValidator = new Cas10TicketValidator(getCasServerUrlPrefix()); lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null); - this.log.debug("Startup completed."); + this.log.info("Startup completed."); } } diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20CasAuthenticator.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20CasAuthenticator.java index 80f246c..432a90f 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20CasAuthenticator.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20CasAuthenticator.java @@ -39,6 +39,6 @@ public final class Cas20CasAuthenticator extends AbstractCasAuthenticator { this.ticketValidator.setProxyGrantingTicketStorage(ProxyCallbackValve.getProxyGrantingTicketStorage()); this.ticketValidator.setRenew(isRenew()); lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null); - this.log.debug("Startup completed."); + this.log.info("Startup completed."); } } diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20ProxyCasAuthenticator.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20ProxyCasAuthenticator.java index c0e7eb3..5c19e63 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20ProxyCasAuthenticator.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Cas20ProxyCasAuthenticator.java @@ -54,6 +54,6 @@ public final class Cas20ProxyCasAuthenticator extends AbstractCasAuthenticator { this.ticketValidator.setEncoding(getEncoding()); } lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null); - this.log.debug("Startup completed."); + this.log.info("Startup completed."); } } diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/PropertiesCasRealm.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/PropertiesCasRealm.java index 09b3493..46416c1 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/PropertiesCasRealm.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/PropertiesCasRealm.java @@ -38,6 +38,7 @@ public class PropertiesCasRealm extends AbstractCasRealm { public void start() throws LifecycleException { super.start(); delegate.readProperties(); + this.log.info("Startup completed."); } /** {@inheritDoc} */ diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/ProxyCallbackValve.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/ProxyCallbackValve.java index 8258472..1ed505e 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/ProxyCallbackValve.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/ProxyCallbackValve.java @@ -57,6 +57,7 @@ public final class ProxyCallbackValve extends AbstractLifecycleValve { } catch (final Exception e) { throw new LifecycleException(e); } + this.log.info("Startup completed."); } public void invoke(final Request request, final Response response) throws IOException, ServletException { diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValue.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValve.java similarity index 93% rename from cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValue.java rename to cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValve.java index eb04188..e6f1f32 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValue.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/RegExpBasedLogoutValve.java @@ -19,7 +19,7 @@ import java.util.regex.Pattern; * @version $Revision$ $Date$ * @since 3.1.12 */ -public final class RegExpBasedLogoutValue extends AbstractLogoutValve { +public final class RegExpBasedLogoutValve extends AbstractLogoutValve { private String regexpUri; @@ -45,6 +45,7 @@ public final class RegExpBasedLogoutValue extends AbstractLogoutValve { } catch (final Exception e) { throw new LifecycleException(e); } + this.log.info("Startup completed."); } protected boolean isLogoutRequest(final Request request) { diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Saml11Authenticator.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Saml11Authenticator.java index 614800a..6132e03 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Saml11Authenticator.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/Saml11Authenticator.java @@ -43,7 +43,7 @@ public class Saml11Authenticator extends AbstractAuthenticator { } this.ticketValidator.setRenew(isRenew()); lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null); - this.log.debug("Startup completed."); + this.log.info("Startup completed."); } protected TicketValidator getTicketValidator() { diff --git a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/UrlBasedLogoutValve.java b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/UrlBasedLogoutValve.java index a59b7b8..a6e6c30 100644 --- a/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/UrlBasedLogoutValve.java +++ b/cas-client-integration-tomcat-v6/src/main/java/org/jasig/cas/client/tomcat/v6/UrlBasedLogoutValve.java @@ -48,6 +48,7 @@ public final class UrlBasedLogoutValve extends AbstractLogoutValve { } catch (final IllegalArgumentException e) { throw new LifecycleException(e); } + this.log.info("Startup completed."); } protected boolean isLogoutRequest(final Request request) {