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;
}