diff --git a/cas-client-core/pom.xml b/cas-client-core/pom.xml
index cae3331..0f8a1bc 100644
--- a/cas-client-core/pom.xml
+++ b/cas-client-core/pom.xml
@@ -76,29 +76,33 @@
org.springframework
spring-beans
- 2.5.1
+ ${spring.version}
provided
org.springframework
- spring-test
- 2.5.1
+ spring-mock
+ ${spring.version}
test
org.springframework
spring-core
- 2.5.1
+ ${spring.version}
test
org.springframework
spring-context
- 2.5.1
+ ${spring.version}
test
+
+
+ 2.0.8
+
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 f029b8f..281ecfc 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
@@ -86,7 +86,7 @@ public class Cas20ProxyReceivingTicketValidationFilter extends AbstractTicketVal
if (CommonUtils.isNotBlank(allowAnyProxy) || CommonUtils.isNotBlank(allowedProxyChains)) {
final Cas20ProxyTicketValidator v = new Cas20ProxyTicketValidator(casServerUrlPrefix);
v.setAcceptAnyProxy(Boolean.parseBoolean(allowAnyProxy));
- v.setAllowedProxyChains(constructListOfProxies(allowedProxyChains));
+ v.setAllowedProxyChains(new ProxyList(constructListOfProxies(allowedProxyChains)));
validator = v;
} else {
validator = new Cas20ServiceTicketValidator(casServerUrlPrefix);
@@ -119,7 +119,7 @@ public class Cas20ProxyReceivingTicketValidationFilter extends AbstractTicketVal
final String[] splitProxies = proxies.split("\n");
final List items = Arrays.asList(splitProxies);
- final ProxyListPropertyEditor editor = new ProxyListPropertyEditor();
+ final ProxyListEditor editor = new ProxyListEditor();
editor.setValue(items);
return (List) editor.getValue();
}
diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidator.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidator.java
index 5ef6787..6c794fd 100644
--- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidator.java
+++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidator.java
@@ -7,9 +7,6 @@ package org.jasig.cas.client.validation;
import org.jasig.cas.client.util.XmlUtils;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
/**
@@ -24,12 +21,16 @@ public final class Cas20ProxyTicketValidator extends Cas20ServiceTicketValidator
private boolean acceptAnyProxy;
/** This should be a list of an array of Strings */
- private List allowedProxyChains = new ArrayList();
+ private ProxyList allowedProxyChains = new ProxyList();
public Cas20ProxyTicketValidator(final String casServerUrlPrefix) {
super(casServerUrlPrefix);
}
+ public ProxyList getAllowedProxyChains() {
+ return this.allowedProxyChains;
+ }
+
protected String getUrlSuffix() {
return "proxyValidate";
}
@@ -43,10 +44,8 @@ public final class Cas20ProxyTicketValidator extends Cas20ServiceTicketValidator
return;
}
- for (Iterator iter = this.allowedProxyChains.iterator(); iter.hasNext();) {
- if (Arrays.equals(proxiedList, (String[]) iter.next())) {
- return;
- }
+ if (allowedProxyChains.contains(proxiedList)) {
+ return;
}
throw new InvalidProxyChainTicketValidationException("Invalid proxy chain: " + proxies.toString());
@@ -56,7 +55,7 @@ public final class Cas20ProxyTicketValidator extends Cas20ServiceTicketValidator
this.acceptAnyProxy = acceptAnyProxy;
}
- public void setAllowedProxyChains(final List allowedProxyChains) {
+ public void setAllowedProxyChains(final ProxyList allowedProxyChains) {
this.allowedProxyChains = allowedProxyChains;
}
}
diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorBeanInfo.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorBeanInfo.java
deleted file mode 100644
index 9883645..0000000
--- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorBeanInfo.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2007 The JA-SIG Collaborative. All rights reserved. See license
- * distributed with this file and available online at
- * http://www.ja-sig.org/products/cas/overview/license/index.html
- */
-package org.jasig.cas.client.validation;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.beans.PropertyEditor;
-import java.beans.SimpleBeanInfo;
-
-import org.springframework.beans.propertyeditors.CustomBooleanEditor;
-
-/**
- * BeanInfo support for using this class with Spring. Configures a ProxyListPropertyEditor to be used with the
- * Cas20ProxyTicketValidator when Spring is used to configure the CAS client.
- *
- * @author Scott Battaglia
- * @version $Revision$ $Date$
- * @since 3.1
- */
-public final class Cas20ProxyTicketValidatorBeanInfo extends SimpleBeanInfo {
-
- public PropertyDescriptor[] getPropertyDescriptors() {
- try {
- final PropertyDescriptor descriptor = new PropertyDescriptor("allowedProxyChains", Cas20ProxyTicketValidator.class, null, "setAllowedProxyChains") {
- public PropertyEditor createPropertyEditor(final Object bean) {
- return new ProxyListPropertyEditor();
- }
- };
-
- final PropertyDescriptor acceptAnyProxy = new PropertyDescriptor("acceptAnyProxy", Cas20ProxyTicketValidator.class, null, "setAcceptAnyProxy") {
- public PropertyEditor createPropertyEditor(final Object bean) {
- return new CustomBooleanEditor(true);
- }
- };
-
- return new PropertyDescriptor[] {descriptor, acceptAnyProxy};
- } catch (final IntrospectionException e) {
- throw new RuntimeException(e);
- }
- }
-}
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
new file mode 100644
index 0000000..7451646
--- /dev/null
+++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyList.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2007 The JA-SIG Collaborative. All rights reserved. See license
+ * distributed with this file and available online at
+ * http://www.ja-sig.org/products/cas/overview/license/index.html
+ */
+package org.jasig.cas.client.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Iterator;
+import java.util.Arrays;
+
+/**
+ * Holding class for the proxy list to make Spring configuration easier.
+ *
+ * @author Scott Battaglia
+ * @version $Revision$ $Date$
+ * @since 3.1.3
+ */
+public final class ProxyList {
+
+ private final List proxyChains;
+
+ public ProxyList(final List proxyChains) {
+ this.proxyChains = proxyChains;
+ }
+
+ public ProxyList() {
+ this(new ArrayList());
+ }
+
+ public boolean contains(String[] proxiedList) {
+ for (Iterator iter = this.proxyChains.iterator(); iter.hasNext();) {
+ if (Arrays.equals(proxiedList, (String[]) iter.next())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListPropertyEditor.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListEditor.java
similarity index 94%
rename from cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListPropertyEditor.java
rename to cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListEditor.java
index ffaa0f5..95994f7 100644
--- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListPropertyEditor.java
+++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/ProxyListEditor.java
@@ -5,6 +5,8 @@
*/
package org.jasig.cas.client.validation;
+import org.jasig.cas.client.util.CommonUtils;
+
import java.beans.PropertyEditorSupport;
import java.io.BufferedReader;
import java.io.IOException;
@@ -12,8 +14,6 @@ import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
-import org.jasig.cas.client.util.CommonUtils;
-
/**
* Convert a String-formatted list of acceptable proxies to an array.
*
@@ -22,7 +22,7 @@ import org.jasig.cas.client.util.CommonUtils;
* @since 3.1
*
*/
-public final class ProxyListPropertyEditor extends PropertyEditorSupport {
+public final class ProxyListEditor extends PropertyEditorSupport {
public void setAsText(final String text) throws IllegalArgumentException {
final BufferedReader reader = new BufferedReader(new StringReader(text));
diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java
index 64ed3e4..2e30c55 100644
--- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java
+++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/Cas20ProxyTicketValidatorTests.java
@@ -9,7 +9,6 @@ import org.jasig.cas.client.PublicTestHttpServer;
import org.jasig.cas.client.proxy.ProxyGrantingTicketStorage;
import org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl;
import org.jasig.cas.client.proxy.ProxyRetriever;
-import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.UnsupportedEncodingException;
@@ -41,7 +40,7 @@ public final class Cas20ProxyTicketValidatorTests extends
this.ticketValidator.setProxyCallbackUrl("test");
this.ticketValidator.setProxyGrantingTicketStorage(getProxyGrantingTicketStorage());
this.ticketValidator.setProxyRetriever(getProxyRetriever());
- this.ticketValidator.setAllowedProxyChains(list);
+ this.ticketValidator.setAllowedProxyChains(new ProxyList(list));
}
private ProxyGrantingTicketStorage getProxyGrantingTicketStorage() {
@@ -92,8 +91,8 @@ public final class Cas20ProxyTicketValidatorTests extends
public void testConstructionFromSpringBean() throws TicketValidationException,
UnsupportedEncodingException {
- final ApplicationContext context = new ClassPathXmlApplicationContext("classpath:cas20ProxyTicketValidator.xml");
- final Cas20ProxyTicketValidator v = (Cas20ProxyTicketValidator) context.getBean("proxyTicketValidator");
+ final ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:cas20ProxyTicketValidator.xml");
+ final Cas20ProxyTicketValidator v = (Cas20ProxyTicketValidator) context.getBean("proxyTicketValidator");
final Cas20ProxyTicketValidator v2 = (Cas20ProxyTicketValidator) context.getBean("proxyTicketValidatorWithAllowAnyProxy");
final String USERNAME = "username";
diff --git a/cas-client-core/src/test/resources/cas20ProxyTicketValidator.xml b/cas-client-core/src/test/resources/cas20ProxyTicketValidator.xml
index 16ec091..2b7b9b2 100644
--- a/cas-client-core/src/test/resources/cas20ProxyTicketValidator.xml
+++ b/cas-client-core/src/test/resources/cas20ProxyTicketValidator.xml
@@ -13,7 +13,9 @@
proxy1 proxy2 proxy3
-
+
+
+