From 4252731534eff0f0a664224c890778f324df380a Mon Sep 17 00:00:00 2001 From: Scott Battaglia Date: Mon, 9 Jun 2008 18:18:32 +0000 Subject: [PATCH] NOJIRA factored out common code for proxying --- .../jasig/cas/client/util/CommonUtils.java | 39 +++++++++++++++++++ ...0ProxyReceivingTicketValidationFilter.java | 33 +--------------- 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/util/CommonUtils.java b/cas-client-core/src/main/java/org/jasig/cas/client/util/CommonUtils.java index 5122032..b8e4a62 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/util/CommonUtils.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/util/CommonUtils.java @@ -7,9 +7,12 @@ package org.jasig.cas.client.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jasig.cas.client.proxy.ProxyGrantingTicketStorage; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Collection; @@ -25,6 +28,16 @@ public final class CommonUtils { /** Instance of Commons Logging. */ private static final Log LOG = LogFactory.getLog(CommonUtils.class); + + /** + * Constant representing the ProxyGrantingTicket IOU Request Parameter. + */ + private static final String PARAM_PROXY_GRANTING_TICKET_IOU = "pgtIou"; + + /** + * Constant representing the ProxyGrantingTicket Request Parameter. + */ + private static final String PARAM_PROXY_GRANTING_TICKET = "pgtId"; private CommonUtils() { // nothing to do @@ -134,6 +147,32 @@ public final class CommonUtils { } } + public static final void readAndRespondToProxyReceptorRequest(final HttpServletRequest request, final HttpServletResponse response, final ProxyGrantingTicketStorage proxyGrantingTicketStorage) throws IOException { + final String proxyGrantingTicketIou = request + .getParameter(PARAM_PROXY_GRANTING_TICKET_IOU); + + final String proxyGrantingTicket = request + .getParameter(PARAM_PROXY_GRANTING_TICKET); + + if (CommonUtils.isBlank(proxyGrantingTicket) + || CommonUtils.isBlank(proxyGrantingTicketIou)) { + response.getWriter().write(""); + return; + } + + if (LOG.isDebugEnabled()) { + LOG.debug("Received proxyGrantingTicketId [" + + proxyGrantingTicket + "] for proxyGrantingTicketIou [" + + proxyGrantingTicketIou + "]"); + } + + proxyGrantingTicketStorage.save(proxyGrantingTicketIou, + proxyGrantingTicket); + + response.getWriter().write(""); + response.getWriter().write(""); + } + /** * Constructs a service url from the HttpServletRequest or from the given * serviceUrl. Prefers the serviceUrl provided if both a serviceUrl and a 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 a757091..b2e288d 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 @@ -39,16 +39,6 @@ import java.util.Map; */ public class Cas20ProxyReceivingTicketValidationFilter extends AbstractTicketValidationFilter { - /** - * Constant representing the ProxyGrantingTicket IOU Request Parameter. - */ - private static final String PARAM_PROXY_GRANTING_TICKET_IOU = "pgtIou"; - - /** - * Constant representing the ProxyGrantingTicket Request Parameter. - */ - private static final String PARAM_PROXY_GRANTING_TICKET = "pgtId"; - private static final String[] RESERVED_INIT_PARAMS = new String[] {"proxyReceptorUrl", "acceptAnyProxy", "allowedProxyChains", "casServerUrlPrefix", "proxyCallbackUrl", "renew", "exceptionOnValidationFailure", "redirectAfterValidation", "useSession", "serverName", "service", "artifactParameterName", "serviceParameterName", "encodeServiceUrl"}; /** @@ -137,29 +127,8 @@ public class Cas20ProxyReceivingTicketValidationFilter extends AbstractTicketVal return true; } - final String proxyGrantingTicketIou = request - .getParameter(PARAM_PROXY_GRANTING_TICKET_IOU); + CommonUtils.readAndRespondToProxyReceptorRequest(request, response, this.proxyGrantingTicketStorage); - final String proxyGrantingTicket = request - .getParameter(PARAM_PROXY_GRANTING_TICKET); - - if (CommonUtils.isBlank(proxyGrantingTicket) - || CommonUtils.isBlank(proxyGrantingTicketIou)) { - response.getWriter().write(""); - return false; - } - - if (log.isDebugEnabled()) { - log.debug("Received proxyGrantingTicketId [" - + proxyGrantingTicket + "] for proxyGrantingTicketIou [" - + proxyGrantingTicketIou + "]"); - } - - this.proxyGrantingTicketStorage.save(proxyGrantingTicketIou, - proxyGrantingTicket); - - response.getWriter().write(""); - response.getWriter().write(""); return false; }