You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2014/12/30 02:27:05 UTC
svn commit: r1648461 - in /portals/jetspeed-2/applications/j2-admin/trunk:
pom.xml
src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java
src/main/webapp/WEB-INF/model/validator-configuration.xml
Author: taylor
Date: Tue Dec 30 01:27:05 2014
New Revision: 1648461
URL: http://svn.apache.org/r1648461
Log:
JS2-1306: updating dependencies for Velocity 1.7
Added:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/pom.xml
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/model/validator-configuration.xml
Modified: portals/jetspeed-2/applications/j2-admin/trunk/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/pom.xml?rev=1648461&r1=1648460&r2=1648461&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/pom.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/pom.xml Tue Dec 30 01:27:05 2014
@@ -32,10 +32,8 @@
<properties>
<!-- Project Dependency Version Properties -->
<jetspeed-2.version>2.3.0-SNAPSHOT</jetspeed-2.version>
- <org.apache.portals.bridges.common.version>2.0</org.apache.portals.bridges.common.version>
- <org.apache.portals.bridges.velocity.version>2.0</org.apache.portals.bridges.velocity.version>
- <org.apache.portals.bridges.frameworks.version>1.0.4</org.apache.portals.bridges.frameworks.version>
- <org.apache.portals.bridges.portletfilter.version>1.0.4</org.apache.portals.bridges.portletfilter.version>
+ <org.apache.portals.bridges.common.version>2.1-SNAPSHOT</org.apache.portals.bridges.common.version>
+ <org.apache.portals.bridges.velocity.version>2.1-SNAPSHOT</org.apache.portals.bridges.velocity.version>
<org.apache.portals.applications.apa-gems.version>1.2-SNAPSHOT</org.apache.portals.applications.apa-gems.version>
<org.apache.portals.applications.apa-webcontent2.version>2.0-SNAPSHOT</org.apache.portals.applications.apa-webcontent2.version>
<commons-digester.version>2.1</commons-digester.version>
@@ -44,11 +42,12 @@
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-io.version>2.4</commons-io.version>
<commons-beanutils.version>1.9.2</commons-beanutils.version>
+ <commons-validator.version>1.3.1</commons-validator.version>
<commons-codec.version>1.6</commons-codec.version>
<slf4j.version>1.5.6</slf4j.version>
<javax.servlet.jstl.version>1.1.2</javax.servlet.jstl.version>
- <javax.servlet.version>2.4</javax.servlet.version>
- <javax.servlet.jsp.version>2.0</javax.servlet.jsp.version>
+ <javax.servlet.version>3.0.1</javax.servlet.version>
+ <javax.servlet.jsp.version>2.2.1</javax.servlet.jsp.version>
<log4j.version>1.2.17</log4j.version>
<portals.portlet2-api-spec.version>1.0</portals.portlet2-api-spec.version>
<org.apache.pluto.version>2.0.3</org.apache.pluto.version>
@@ -57,7 +56,7 @@
<taglibs-request.version>1.0.1</taglibs-request.version>
<taglibs-standard.version>1.1.2</taglibs-standard.version>
<velocity-tools.version>1.3</velocity-tools.version>
- <velocity.version>1.6.3</velocity.version>
+ <velocity.version>1.7</velocity.version>
<xerces.version>2.8.1</xerces.version>
<wicket.version>1.4.17</wicket.version>
</properties>
@@ -75,13 +74,13 @@
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
+ <artifactId>javax.servlet.jsp-api</artifactId>
<version>${javax.servlet.jsp.version}</version>
<scope>provided</scope>
</dependency>
@@ -143,6 +142,10 @@
<scope>runtime</scope>
<exclusions>
<exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
@@ -182,32 +185,6 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.portals.bridges</groupId>
- <artifactId>portals-bridges-frameworks</artifactId>
- <version>${org.apache.portals.bridges.frameworks.version}</version>
- <exclusions>
- <exclusion>
- <groupId>velocity</groupId>
- <artifactId>velocity</artifactId>
- </exclusion>
- <exclusion>
- <groupId>velocity-tools</groupId>
- <artifactId>velocity-tools</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.portals.bridges</groupId>
- <artifactId>portals-bridges-portletfilter</artifactId>
- <version>${org.apache.portals.bridges.portletfilter.version}</version>
- <exclusions>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
@@ -406,7 +383,12 @@
<artifactId>apa-webcontent2-portlets</artifactId>
<version>${org.apache.portals.applications.apa-webcontent2.version}</version>
</dependency>
-
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>${commons-validator.version}</version>
+ </dependency>
+
<!-- test dependencies -->
<dependency>
<groupId>junit</groupId>
Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java?rev=1648461&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/constraints/ValidationSupport.java Tue Dec 30 01:27:05 2014
@@ -0,0 +1,404 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.security.constraints;
+
+import org.apache.commons.beanutils.DynaBean;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.validator.Arg;
+import org.apache.commons.validator.Field;
+import org.apache.commons.validator.Form;
+import org.apache.commons.validator.GenericTypeValidator;
+import org.apache.commons.validator.GenericValidator;
+import org.apache.commons.validator.ValidatorAction;
+import org.apache.commons.validator.ValidatorResources;
+import org.apache.commons.validator.ValidatorResult;
+import org.apache.commons.validator.ValidatorResults;
+
+import java.lang.reflect.InvocationTargetException;
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+/**
+ * ValidationSupport
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
+ * @version $Id: ValidationSupport.java 517068 2007-03-12 01:44:37Z ate $
+ */
+public class ValidationSupport
+{
+
+ public static String getValueAsString(Object bean, String property)
+ {
+ Object value = null;
+
+ if (bean instanceof Map)
+ {
+ value = ((Map) bean).get(property);
+ }
+ else if (bean instanceof DynaBean)
+ {
+ value = ((DynaBean) bean).get(property);
+ }
+ else
+ {
+ try
+ {
+ value = PropertyUtils.getProperty(bean, property);
+
+ }
+ catch (IllegalAccessException e)
+ {
+ //log.error(e.getMessage(), e);
+ }
+ catch (InvocationTargetException e)
+ {
+ //log.error(e.getMessage(), e);
+ }
+ catch (NoSuchMethodException e)
+ {
+ //log.error(e.getMessage(), e);
+ }
+ }
+
+ if (value == null) { return null; }
+
+ if (value instanceof String[])
+ {
+ return ((String[]) value).length > 0 ? value.toString() : "";
+
+ }
+ else if (value instanceof Collection)
+ {
+ return ((Collection) value).isEmpty() ? "" : value.toString();
+
+ }
+ else
+ {
+ return value.toString();
+ }
+ }
+
+ /**
+ * Checks if the field is required.
+ *
+ * @return boolean If the field isn't <code>null</code> and has a length
+ * greater than zero, <code>true</code> is returned. Otherwise
+ * <code>false</code>.
+ */
+ public static boolean validateRequired(Object bean, ValidatorAction va, Field field, Map errors,
+ ResourceBundle bundle)
+ {
+ String value = getValueAsString(bean, field.getProperty());
+ boolean valid = !GenericValidator.isBlankOrNull(value);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is a required field.");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is a required field.";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static boolean validateRange(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
+ {
+ int value = 0;
+ String result = getValueAsString(bean, field.getProperty());
+ if (result != null)
+ {
+ Integer intValue = GenericTypeValidator.formatInt(result);
+ if (intValue != null)
+ {
+ value = intValue.intValue();
+ }
+ }
+
+ String minResult = field.getVarValue("min");
+ if (minResult == null)
+ {
+ minResult = "0";
+ }
+ String maxResult = field.getVarValue("max");
+ if (maxResult == null)
+ {
+ maxResult = "0";
+ }
+ int min = GenericTypeValidator.formatInt(minResult).intValue();
+ int max = GenericTypeValidator.formatInt(maxResult).intValue();
+
+ boolean valid = GenericValidator.isInRange(value, min, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is out of range: [" + min + "- " + max + "]");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, minResult, maxResult};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is out of range: [{1} - {2}]";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static boolean validateDoubleRange(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
+ {
+ double value = 0;
+ String result = getValueAsString(bean, field.getProperty());
+ if (result != null)
+ {
+ Double doubleValue = GenericTypeValidator.formatDouble(result);
+ if (doubleValue != null)
+ {
+ value = doubleValue.doubleValue();
+ }
+ }
+ String minResult = field.getVarValue("min");
+ if (minResult == null)
+ {
+ minResult = "0";
+ }
+ String maxResult = field.getVarValue("max");
+ if (maxResult == null)
+ {
+ maxResult = "0";
+ }
+
+ double min = GenericTypeValidator.formatDouble(minResult).doubleValue();
+ double max = GenericTypeValidator.formatDouble(maxResult).doubleValue();
+ boolean valid = GenericValidator.isInRange(value, min, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is out of range: [" + min + "- " + max + "]");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, minResult, maxResult};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is out of range: [{1} - {2}]";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static boolean validateMask(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
+ {
+ String value = getValueAsString(bean, field.getProperty());
+
+ String mask = field.getVarValue("mask");
+ if (mask == null)
+ {
+ return true; // no mask provide, let it pass
+ }
+
+ if (GenericValidator.isBlankOrNull(value))
+ {
+ return true; // this is how struts handles it
+ }
+
+ boolean valid = GenericValidator.matchRegexp(value, mask);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " failed to match validation pattern: " + mask);
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, mask};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} failed to match validation pattern: {2}";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static boolean validateMaxLength(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
+ {
+ String value = getValueAsString(bean, field.getProperty());
+
+ int max = Integer.parseInt(field.getVarValue("maxlength"));
+
+ if (GenericValidator.isBlankOrNull(value))
+ {
+ return true;
+ }
+
+ boolean valid = GenericValidator.maxLength(value, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " surpasses maximum length: " + max);
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, new Integer(max)};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} surpasses maximum length {1}";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static void printResults(Object bean, ValidatorResults results, ValidatorResources resources, String formName)
+ {
+
+ boolean success = true;
+
+ // Start by getting the form for the current locale and Bean.
+ Form form = resources.getForm(Locale.getDefault(), formName);
+
+ System.out.println("\n\nValidating:");
+ System.out.println(bean);
+
+ // Iterate over each of the properties of the Bean which had messages.
+ Iterator propertyNames = results.getPropertyNames().iterator();
+ while (propertyNames.hasNext())
+ {
+ String propertyName = (String) propertyNames.next();
+
+ // Get the Field associated with that property in the Form
+ Field field = form.getField(propertyName);
+
+ // Look up the formatted name of the field from the Field arg0
+ String prettyFieldName = propertyName; //apps.getString(field.getArg(0).getKey());
+
+ // Get the result of validating the property.
+ ValidatorResult result = results.getValidatorResult(propertyName);
+
+ // Get all the actions run against the property, and iterate over
+ // their names.
+ Map actionMap = result.getActionMap();
+ Iterator keys = actionMap.keySet().iterator();
+ while (keys.hasNext())
+ {
+ String actName = (String) keys.next();
+
+ // Get the Action for that name.
+ ValidatorAction action = resources.getValidatorAction(actName);
+
+ // If the result is valid, print PASSED, otherwise print FAILED
+ System.out.println(propertyName + "[" + actName + "] ("
+ + (result.isValid(actName) ? "PASSED" : "FAILED") + ")");
+
+ //If the result failed, format the Action's message against the
+ // formatted field name
+ if (!result.isValid(actName))
+ {
+ success = false;
+ String message = "invalid field"; // apps.getString(action.getMsg());
+ if (actName.equals("doubleRange"))
+ {
+ Arg f1 = field.getArg(1);
+ Arg f2 = field.getArg(2);
+ Arg f0 = field.getArg(0);
+ Object[] args =
+ { prettyFieldName, field.getVar("min").getValue(), field.getVar("max").getValue()};
+ System.out.println(" Error message will be: " + MessageFormat.format(message, args));
+ }
+ else
+ {
+ Object[] args =
+ { prettyFieldName};
+ System.out.println(" Error message will be: " + MessageFormat.format(message, args));
+ }
+
+ }
+ }
+ }
+ if (success)
+ {
+ System.out.println("FORM VALIDATION PASSED");
+ }
+ else
+ {
+ System.out.println("FORM VALIDATION FAILED");
+ }
+
+ }
+
+}
\ No newline at end of file
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/model/validator-configuration.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/model/validator-configuration.xml?rev=1648461&r1=1648460&r2=1648461&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/model/validator-configuration.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/model/validator-configuration.xml Tue Dec 30 01:27:05 2014
@@ -22,27 +22,27 @@
<form-validation>
<global>
<validator name="required"
- classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
+ classname="org.apache.jetspeed.portlets.security.constraints.ValidationSupport"
method="validateRequired"
methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
msg="errors.required"/>
<validator name="range"
- classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
+ classname="org.apache.jetspeed.portlets.security.constraints.ValidationSupport"
method="validateRange"
methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
msg="errors.range"/>
<validator name="doubleRange"
- classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
+ classname="org.apache.jetspeed.portlets.security.constraints.ValidationSupport"
method="validateDoubleRange"
methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
msg="errors.range"/>
<validator name="mask"
- classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
+ classname="org.apache.jetspeed.portlets.security.constraints.ValidationSupport"
method="validateMask"
methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
msg="errors.mask"/>
<validator name="maxLength"
- classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
+ classname="org.apache.jetspeed.portlets.security.constraints.ValidationSupport"
method="validateMaxLength"
methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
msg="errors.maxlength"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org