Author: chris.laprun(a)jboss.com
Date: 2009-07-21 17:42:00 -0400 (Tue, 21 Jul 2009)
New Revision: 13568
Modified:
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ProducerBean.java
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource.properties
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource_fr.properties
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/jsf/producer/producer.xhtml
branches/Enterprise_Portal_Platform_4_3/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java
Log:
JBPORTAL-2412: Validate registration policy and registration validator class names.
Modified:
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ProducerBean.java
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ProducerBean.java 2009-07-21
21:36:58 UTC (rev 13567)
+++
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ProducerBean.java 2009-07-21
21:42:00 UTC (rev 13568)
@@ -40,6 +40,7 @@
import java.util.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -55,6 +56,40 @@
private static final String PRODUCER = "producer";
private String selectedProp;
+ // todo: use ParameterValidation.VALID_ASCII_CLASS_NAME when available...
+ public final static Pattern VALID_ASCII_CLASS_NAME =
Pattern.compile("([a-z][a-z0-9_]*\\.)*[A-Z][A-Za-z0-9_$]*");
+
+ public ProducerBean()
+ {
+ setValidator(new DefaultPropertyValidator()
+ {
+ @Override
+ public String getObjectTypeName()
+ {
+ return "CLASS_TYPE";
+ }
+
+ @Override
+ public String doSimpleChecks(String name)
+ {
+ return name;
+ }
+
+ @Override
+ public Pattern getValidationPattern()
+ {
+ return VALID_ASCII_CLASS_NAME;
+ }
+
+ @Override
+ public String getErrorMessageKey()
+ {
+ return "INVALID_CLASS_NAME_ERROR";
+ }
+ });
+
+ }
+
public ProducerConfigurationService getConfigurationService()
{
return configurationService;
@@ -110,7 +145,11 @@
public void setRegistrationPolicyClassName(String className)
{
- policyClassName = className;
+ className = checkNameValidity(className,
"producer-form:registrationPolicy");
+ if (className != null)
+ {
+ policyClassName = className;
+ }
}
public boolean isDefaultRegistrationPolicy()
@@ -129,7 +168,11 @@
public void setValidatorClassName(String className)
{
- validatorClassName = className;
+ className = checkNameValidity(className, "producer-form:validator");
+ if (className != null)
+ {
+ validatorClassName = className;
+ }
}
public boolean isStrictMode()
Modified:
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource.properties
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource.properties 2009-07-21
21:36:58 UTC (rev 13567)
+++
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource.properties 2009-07-21
21:42:00 UTC (rev 13568)
@@ -179,4 +179,7 @@
org.jboss.portal.object.name.admin.WSRP=WSRP
INVALID_NAME_ERROR=''{0}'' is an invalid {1} name: Cannot be null, empty
or contain '/', '.', '\\', '<', '>',
'(', ')', '=' or '%5c'
-DUPLICATE_ERROR=A {1} named ''{0}'' already exists!
\ No newline at end of file
+DUPLICATE_ERROR=A {1} named ''{0}'' already exists!
+
+CLASS_TYPE = class
+INVALID_CLASS_NAME_ERROR=''{0}'' is an invalid {1} name: Must be a valid
ASCII class name.
\ No newline at end of file
Modified:
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource_fr.properties
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource_fr.properties 2009-07-21
21:36:58 UTC (rev 13567)
+++
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/WEB-INF/classes/Resource_fr.properties 2009-07-21
21:42:00 UTC (rev 13568)
@@ -20,7 +20,6 @@
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA #
# 02110-1301 USA, or see the FSF site:
http://www.fsf.org. #
################################################################################
-# JBoss Portal display information
org.jboss.portal.object.name.WSRPConfigurationPortlet = Configuration WSRP
org.jboss.portal.instance.name.WSRPConfigurationPortletInstance = Portlet de
Configuration pour WSRP
@@ -147,4 +146,6 @@
consumers_table_reload=Recharger consommateurs
CONSUMER_TYPE=Consommateur
DUPLICATE_ERROR=Un {1} nomm\u00e9 ''{0}'' existe d\u00e9j\u00e0!
-INVALID_NAME_ERROR=''{0}'' est un nom invalide pour un {1} : Ne peut pas
\u00eatre null, vide ou contenir '/', '.', '\\', '<',
'>', '(', ')', '=' ou '%5c'
\ No newline at end of file
+INVALID_NAME_ERROR=''{0}'' est un nom invalide pour un {1} : Ne peut pas
\u00eatre null, vide ou contenir '/', '.', '\\', '<',
'>', '(', ')', '=' ou '%5c'
+CLASS_TYPE=classe
+INVALID_CLASS_NAME_ERROR=''{0}'' est un nom invalid pour une {1}: Doit
\u00eatre un nom de classe ASCII valide!
\ No newline at end of file
Modified:
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/jsf/producer/producer.xhtml
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/jsf/producer/producer.xhtml 2009-07-21
21:36:58 UTC (rev 13567)
+++
branches/Enterprise_Portal_Platform_4_3/core-wsrp/src/resources/portal-wsrp-admin-war/jsf/producer/producer.xhtml 2009-07-21
21:42:00 UTC (rev 13568)
@@ -33,6 +33,7 @@
<h:panelGrid columns="2" width="100%">
<h:selectBooleanCheckbox id="cons-reg-req-check"
value="#{producer.registrationRequiredForFullDescription}"/>
<h:outputText
value="#{i18n.producer_config_sd_requires_reg}"/>
+
<h:selectBooleanCheckbox value="#{producer.strictMode}"/>
<h:outputText value="#{i18n.producer_config_strict}"/>
@@ -43,14 +44,16 @@
<h:outputText value=" "
rendered="#{producer.registrationRequired}"/>
<h:panelGroup rendered="#{producer.registrationRequired}">
- <h:panelGrid columns="2" width="100%">
+ <h:panelGrid columns="3" width="95%">
<h:outputLabel value="#{i18n.producer_config_reg_policy}"
for="registrationPolicy"/>
<h:inputText id="registrationPolicy"
value="#{producer.registrationPolicyClassName}" size="80"/>
+ <h:message styleClass="portlet-msg-error"
for="registrationPolicy"/>
<h:outputLabel
value="#{i18n.producer_config_reg_prop_validator}" for="validator"
rendered="#{producer.defaultRegistrationPolicy}"/>
<h:inputText id="validator"
value="#{producer.validatorClassName}" size="80"
rendered="#{producer.defaultRegistrationPolicy}"/>
+ <h:message styleClass="portlet-msg-error"
for="validator"/>
</h:panelGrid>
</h:panelGroup>
@@ -61,7 +64,7 @@
<h:panelGroup styleClass="portlet-area-body">
<c:choose>
<c:when test="#{!empty
producer.registrationProperties}">
- <h:dataTable id="reg-properties"
var="property" width="100%"
+ <h:dataTable id="reg-properties"
var="property" width="95%"
value="#{producer.registrationProperties}"
rendered="#{producer.registrationRequired}"
headerClass="portlet-section-header">
Modified:
branches/Enterprise_Portal_Platform_4_3/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java 2009-07-21
21:36:58 UTC (rev 13567)
+++
branches/Enterprise_Portal_Platform_4_3/faces/src/main/org/jboss/portal/faces/gui/ManagedBean.java 2009-07-21
21:42:00 UTC (rev 13568)
@@ -91,17 +91,18 @@
else
{
String original = name;
- name = validator.doSimpleChecks(name);
+ // Trim name
+ name = name.trim();
+
// we got an invalid name after simple checks, fail!
+ name = validator.doSimpleChecks(name);
if (name == null)
{
beanContext.createTargetedErrorMessage(targetForErrorMessage,
validator.getErrorMessageKey(), original, getLocalizedType(objectTypeName));
return null;
}
- // Trim name
- name = name.trim();
// "sanitize" name: if it's invalid, return null and output
message
name = ParameterValidation.sanitizeFromPatternWithHandler(name,
validator.getValidationPattern(),