diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AttributePrincipalImpl.java b/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AttributePrincipalImpl.java index 2ac1cba..e30ed93 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AttributePrincipalImpl.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AttributePrincipalImpl.java @@ -1,5 +1,7 @@ package org.jasig.cas.client.authentication; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.jasig.cas.client.proxy.ProxyRetriever; import org.jasig.cas.client.util.CommonUtils; @@ -14,6 +16,8 @@ import java.util.Map; * @since 3.1 */ public class AttributePrincipalImpl implements AttributePrincipal { + + private static final Log LOG = LogFactory.getLog(AttributePrincipalImpl.class); /** Unique Id for Serialization */ private static final long serialVersionUID = -8810123156070148535L; @@ -86,6 +90,8 @@ public class AttributePrincipalImpl implements AttributePrincipal { if (proxyGrantingTicket != null) { return this.proxyRetriever.getProxyTicketIdFor(this.proxyGrantingTicket, service); } + + LOG.debug("No ProxyGrantingTicket was supplied, so no Proxy Ticket can be retrieved."); return null; } diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AuthenticationFilter.java b/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AuthenticationFilter.java index a998879..4ff2087 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AuthenticationFilter.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/authentication/AuthenticationFilter.java @@ -58,8 +58,11 @@ public class AuthenticationFilter extends AbstractCasFilter { protected void initInternal(final FilterConfig filterConfig) throws ServletException { super.initInternal(filterConfig); setCasServerLoginUrl(getPropertyFromInitParams(filterConfig, "casServerLoginUrl", null)); + log.trace("Loaded CasServerLoginUrl parameter: " + this.casServerLoginUrl); setRenew(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "renew", "false"))); + log.trace("Loaded renew parameter: " + this.renew); setGateway(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "gateway", "false"))); + log.trace("Loaded gateway parameter: " + this.gateway); } public void init() { @@ -85,6 +88,11 @@ public class AuthenticationFilter extends AbstractCasFilter { } final String serviceUrl = constructServiceUrl(request, response); + + if (log.isDebugEnabled()) { + log.debug("Constructed service url: " + serviceUrl); + } + final String urlToRedirectTo = CommonUtils.constructRedirectUrl(this.casServerLoginUrl, getServiceParameterName(), serviceUrl, this.renew, this.gateway); if (log.isDebugEnabled()) { diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/proxy/ProxyGrantingTicketStorageImpl.java b/cas-client-core/src/main/java/org/jasig/cas/client/proxy/ProxyGrantingTicketStorageImpl.java index e855366..0df94ca 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/proxy/ProxyGrantingTicketStorageImpl.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/proxy/ProxyGrantingTicketStorageImpl.java @@ -11,6 +11,9 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Implementation of {@link ProxyGrantingTicketStorage} that is backed by a * HashMap that keeps a ProxyGrantingTicket for a specified amount of time. @@ -23,6 +26,8 @@ import java.util.Map; */ public final class ProxyGrantingTicketStorageImpl implements ProxyGrantingTicketStorage { + + private final Log log = LogFactory.getLog(getClass()); /** * Default timeout in milliseconds. @@ -63,11 +68,15 @@ public final class ProxyGrantingTicketStorageImpl implements .get(proxyGrantingTicketIou); if (holder == null) { + log.info("No Proxy Ticket found for " + proxyGrantingTicketIou); return null; } this.cache.remove(holder); + if (log.isDebugEnabled()) { + log.debug("Returned ProxyGrantingTicket of " + holder.getProxyGrantingTicket()); + } return holder.getProxyGrantingTicket(); } @@ -76,6 +85,9 @@ public final class ProxyGrantingTicketStorageImpl implements final ProxyGrantingTicketHolder holder = new ProxyGrantingTicketHolder( proxyGrantingTicket); + if (log.isDebugEnabled()) { + log.debug("Saving ProxyGrantingTicketIOU and ProxyGrantingTicket combo: [" + proxyGrantingTicketIou + ", " + proxyGrantingTicket + "]"); + } this.cache.put(proxyGrantingTicketIou, holder); } diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutFilter.java b/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutFilter.java index 267e73d..86d2e9d 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutFilter.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutFilter.java @@ -71,8 +71,8 @@ public final class SingleSignOutFilter extends AbstractConfigurationFilter { if (session != null) { String sessionID = session.getId(); - if (log.isTraceEnabled()) { - log.trace ("Invalidating session [" + sessionID + "] for ST [" + sessionIdentifier + "]"); + if (log.isDebugEnabled()) { + log.debug ("Invalidating session [" + sessionID + "] for ST [" + sessionIdentifier + "]"); } try { @@ -85,8 +85,12 @@ public final class SingleSignOutFilter extends AbstractConfigurationFilter { } } } else { - final String artifact = request.getParameter(this.artifactParameterName); + final String artifact = request.getParameter(this.artifactParameterName); final HttpSession session = request.getSession(); + + if (log.isDebugEnabled() && session != null) { + log.debug("Storing session identifier for " + session.getId()); + } if (CommonUtils.isNotBlank(artifact)) { SESSION_MAPPING_STORAGE.addSessionById(artifact, session); } diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutHttpSessionListener.java b/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutHttpSessionListener.java index 7661c21..8c99557 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutHttpSessionListener.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/session/SingleSignOutHttpSessionListener.java @@ -9,6 +9,9 @@ import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Listener to detect when an HTTP session is destroyed and remove it from the map of * managed sessions. Also allows for the programmatic removal of sessions. @@ -21,6 +24,8 @@ import javax.servlet.http.HttpSessionListener; */ public final class SingleSignOutHttpSessionListener implements HttpSessionListener { + private Log log = LogFactory.getLog(getClass()); + private SessionMappingStorage SESSION_MAPPING_STORAGE; public void sessionCreated(final HttpSessionEvent event) { @@ -32,6 +37,11 @@ public final class SingleSignOutHttpSessionListener implements HttpSessionListen SESSION_MAPPING_STORAGE = getSessionMappingStorage(); } final HttpSession session = event.getSession(); + + if (log.isDebugEnabled()) { + log.debug("Removing HttpSession: " + session.getId()); + } + SESSION_MAPPING_STORAGE.removeBySessionById(session.getId()); } diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/util/AbstractCasFilter.java b/cas-client-core/src/main/java/org/jasig/cas/client/util/AbstractCasFilter.java index baf82f9..8a1c176 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/util/AbstractCasFilter.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/util/AbstractCasFilter.java @@ -49,10 +49,15 @@ public abstract class AbstractCasFilter extends AbstractConfigurationFilter { public final void init(final FilterConfig filterConfig) throws ServletException { setServerName(getPropertyFromInitParams(filterConfig, "serverName", null)); + log.trace("Loading serverName property: " + this.serverName); setService(getPropertyFromInitParams(filterConfig, "service", null)); + log.trace("Loading service property: " + this.service); setArtifactParameterName(getPropertyFromInitParams(filterConfig, "artifactParameterName", "ticket")); + log.trace("Loading artifact parameter name property: " + this.artifactParameterName); setServiceParameterName(getPropertyFromInitParams(filterConfig, "serviceParameterName", "service")); + log.trace("Loading serviceParameterName property: " + this.serviceParameterName); setEncodeServiceUrl(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "encodeServiceUrl", "true"))); + log.trace("Loading encodeServiceUrl property: " + this.encodeServiceUrl); initInternal(filterConfig); init(); diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractTicketValidationFilter.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractTicketValidationFilter.java index 5abecfc..5b39d78 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractTicketValidationFilter.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractTicketValidationFilter.java @@ -62,8 +62,11 @@ public abstract class AbstractTicketValidationFilter extends AbstractCasFilter { protected void initInternal(final FilterConfig filterConfig) throws ServletException { super.initInternal(filterConfig); setExceptionOnValidationFailure(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "exceptionOnValidationFailure", "true"))); + log.trace("Setting exceptionOnValidationFailure parameter: " + this.exceptionOnValidationFailure); setRedirectAfterValidation(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "redirectAfterValidation", "false"))); + log.trace("Setting redirectAfterValidation parameter: " + this.redirectAfterValidation); setUseSession(Boolean.parseBoolean(getPropertyFromInitParams(filterConfig, "useSession", "true"))); + log.trace("Setting useSession parameter: " + this.useSession); setTicketValidator(getTicketValidator(filterConfig)); } @@ -154,6 +157,7 @@ public abstract class AbstractTicketValidationFilter extends AbstractCasFilter { } if (this.redirectAfterValidation) { + log. debug("Redirecting after successful ticket validation."); response.sendRedirect(response .encodeRedirectURL(constructServiceUrl(request, response))); return; diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java index 49a154f..6174a85 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java @@ -83,6 +83,7 @@ public abstract class AbstractUrlBasedTicketValidator implements TicketValidator protected final String constructValidationUrl(final String ticket, final String serviceUrl) { final Map urlParameters = new HashMap(); + log.debug("Placing URL parameters in map."); urlParameters.put("ticket", ticket); urlParameters.put("service", encodeUrl(serviceUrl)); @@ -90,8 +91,10 @@ public abstract class AbstractUrlBasedTicketValidator implements TicketValidator urlParameters.put("renew", "true"); } + log.debug("Calling template URL attribute map."); populateUrlAttributeMap(urlParameters); + log.debug("Loading custom parameters from configuration."); if (this.customParameters != null) { urlParameters.putAll(this.customParameters); } @@ -164,14 +167,20 @@ public abstract class AbstractUrlBasedTicketValidator implements TicketValidator public Assertion validate(final String ticket, final String service) throws TicketValidationException { + log.debug("Constructing validation url."); final String validationUrl = constructValidationUrl(ticket, service); try { + log.debug("Retrieving response from server."); final String serverResponse = retrieveResponseFromServer(new URL(validationUrl), ticket); if (serverResponse == null) { throw new TicketValidationException("The CAS server returned no response."); } + + if (log.isDebugEnabled()) { + log.debug("Server response: " + serverResponse); + } return parseResponseFromServer(serverResponse); } catch (final MalformedURLException e) { diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyReceivingTicketValidationFilter.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyReceivingTicketValidationFilter.java index 281ecfc..a757091 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyReceivingTicketValidationFilter.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyReceivingTicketValidationFilter.java @@ -64,6 +64,7 @@ public class Cas20ProxyReceivingTicketValidationFilter extends AbstractTicketVal protected void initInternal(final FilterConfig filterConfig) throws ServletException { super.initInternal(filterConfig); setProxyReceptorUrl(getPropertyFromInitParams(filterConfig, "proxyReceptorUrl", null)); + log.trace("Setting proxyReceptorUrl parameter: " + this.proxyReceptorUrl); } public void init() { diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyList.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyList.java index 7451646..107b042 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyList.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyList.java @@ -38,4 +38,8 @@ public final class ProxyList { return false; } + + public String toString() { + return this.proxyChains.toString(); + } }