You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2011/04/29 07:32:50 UTC
svn commit: r1097686 - in /continuum/trunk/continuum-webapp/src:
main/java/org/apache/continuum/web/action/admin/
main/java/org/apache/continuum/web/util/
main/java/org/apache/maven/continuum/web/action/
main/java/org/apache/maven/continuum/web/action/...
Author: ctan
Date: Fri Apr 29 05:32:48 2011
New Revision: 1097686
URL: http://svn.apache.org/viewvc?rev=1097686&view=rev
Log:
[CONTINUUM-2620]
- move validation to xml files
- remove regex validation in description and just escape xml to prevent xss attacks
Added:
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction-addProjectGroup-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties (with props)
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties (with props)
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties (with props)
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties (with props)
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties (with props)
Removed:
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/RegexPatternConstants.java
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveGroupBuildDefinition-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveProjectBuildDefinition-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction-ircNotifierSave-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction_de.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction_en.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction_fr.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/IrcNotifierEditAction_pt_BR.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction-jabberNotifierSave-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction_de.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction_en.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction_fr.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/JabberNotifierEditAction_pt_BR.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction-mailNotifierSave-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction_de.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction_en.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction_fr.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MailNotifierEditAction_pt_BR.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction-msnNotifierSave-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction_de.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction_en.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction_fr.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/MsnNotifierEditAction_pt_BR.properties
Modified:
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/PurgeConfigurationAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/BuildAgentAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/PurgeConfigurationAction-savePurgeConfig-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveBuildDefinition-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction-saveProjectGroup-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_de.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_fr.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_pt_BR.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp
continuum/trunk/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/AddProjectActionTest.java
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java Fri Apr 29 05:32:48 2011
@@ -165,6 +165,9 @@ public class BuildAgentAction
ConfigurationService configuration = getContinuum().getConfiguration();
+ // escape xml to prevent xss attacks
+ buildAgent.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( buildAgent.getDescription() ) ) );
+
if ( configuration.getBuildAgents() != null )
{
for ( BuildAgentConfiguration agent : configuration.getBuildAgents() )
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/PurgeConfigurationAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/PurgeConfigurationAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/PurgeConfigurationAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/PurgeConfigurationAction.java Fri Apr 29 05:32:48 2011
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.model.repository.AbstractPurgeConfiguration;
import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
import org.apache.continuum.model.repository.LocalRepository;
@@ -35,12 +36,10 @@ import org.apache.continuum.purge.Contin
import org.apache.continuum.purge.PurgeConfigurationService;
import org.apache.continuum.repository.RepositoryService;
import org.apache.continuum.taskqueue.manager.TaskQueueManager;
-import org.apache.maven.continuum.build.settings.SchedulesActivationException;
import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.model.project.Schedule;
import org.apache.maven.continuum.security.ContinuumRoleConstants;
import org.apache.maven.continuum.web.action.ContinuumConfirmAction;
-import org.apache.maven.continuum.web.action.ScheduleAction;
import org.apache.struts2.ServletActionContext;
import org.codehaus.plexus.redback.rbac.Resource;
import org.codehaus.redback.integration.interceptor.SecureAction;
@@ -547,7 +546,8 @@ public class PurgeConfigurationAction
repoPurge.setRetentionCount( this.retentionCount );
repoPurge.setEnabled( this.enabled );
repoPurge.setDefaultPurge( this.defaultPurgeConfiguration );
- repoPurge.setDescription( this.description );
+ // escape xml to prevent xss attacks
+ repoPurge.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( this.description ) ) );
repoPurge.setDefaultPurge( this.defaultPurgeConfiguration );
if ( repositoryId != 0 )
@@ -573,7 +573,8 @@ public class PurgeConfigurationAction
dirPurge.setEnabled( this.enabled );
dirPurge.setDaysOlder( this.daysOlder );
dirPurge.setRetentionCount( this.retentionCount );
- dirPurge.setDescription( this.description );
+ // escape xml to prevent xss attacks
+ dirPurge.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( this.description ) ) );
dirPurge.setDirectoryType( this.directoryType );
dirPurge.setDefaultPurge( this.defaultPurgeConfiguration );
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java Fri Apr 29 05:32:48 2011
@@ -23,9 +23,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
-import org.apache.continuum.web.util.RegexPatternConstants;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
@@ -97,66 +97,8 @@ public class AddProjectAction
private boolean emptyProjectGroups;
- public void validate()
- {
- clearErrorsAndMessages();
- initializeActionContext();
-
- try
- {
- if ( ( projectName != null ) && !( projectName.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.name.required" ) );
- }
- else if ( ( projectName != null ) && !( projectName.trim().matches( RegexPatternConstants.NAME_REGEX ) ) )
- {
- addActionError( getText( "addProject.name.invalid" ) );
- }
- if (( projectDescription != null ) && !( projectDescription.trim().matches( RegexPatternConstants.DESCRIPTION_REGEX ) ) )
- {
- addActionError( getText( "addProject.description.invalid" ) );
- }
- if ( ( projectVersion != null ) && !( projectVersion.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.version.required" ) );
- }
- else if ( ( projectVersion != null ) && !(projectVersion.trim().matches( RegexPatternConstants.VERSION_REGEX ) ) )
- {
- addActionError( getText( "addProject.version.invalid" ) );
- }
- if ( ( projectScmUrl != null ) && !( projectScmUrl.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.scmUrl.required" ) );
- }
- else if ( ( projectScmUrl != null ) && !( projectScmUrl.trim().matches( RegexPatternConstants.SCM_URL_REGEX ) ) )
- {
- addActionError( getText( "addProject.scmUrl.invalid" ) );
- }
- if ( ( projectScmTag != null ) && !( projectScmTag.trim().matches( RegexPatternConstants.SCM_URL_REGEX ) ) )
- {
- addActionError( getText( "addProject.scmTag.invalid" ) );
- }
- if ( isEmptyProjectGroups() )
- {
- addActionError( getText( "addProject.projectGroup.required" ) );
- }
- if ( hasActionErrors() )
- {
- input();
- }
- }
- catch ( ContinuumException e )
- {
- logger.error( e.getMessage(), e );
- }
- catch ( BuildDefinitionServiceException e )
- {
- logger.error( e.getMessage(), e );
- }
- }
-
public String add()
- throws ContinuumException
+ throws ContinuumException, ProfileException, BuildDefinitionServiceException
{
initializeProjectGroupName();
initializeActionContext();
@@ -178,6 +120,11 @@ public class AddProjectAction
return REQUIRES_AUTHORIZATION;
}
+ if ( isEmptyProjectGroups() )
+ {
+ addActionError( getText( "addProject.projectGroup.required" ) );
+ }
+
String projectNameTrim = projectName.trim();
String versionTrim = projectVersion.trim();
String scmTrim = projectScmUrl.trim();
@@ -190,17 +137,22 @@ public class AddProjectAction
StringUtils.equalsIgnoreCase( project.getScmUrl(), scmTrim ) )
{
addActionError( getText( "projectName.already.exist.error" ) );
- return INPUT;
+ break;
}
}
+ if ( hasActionErrors() )
+ {
+ return INPUT;
+ }
+
Project project = new Project();
project.setName( projectNameTrim );
if ( projectDescription != null )
{
- project.setDescription( projectDescription.trim() );
+ project.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( projectDescription.trim() ) ) );
}
project.setVersion( versionTrim );
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java Fri Apr 29 05:32:48 2011
@@ -19,15 +19,13 @@ package org.apache.maven.continuum.web.a
* under the License.
*/
-import com.opensymphony.xwork2.Validateable;
-
import java.util.List;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.model.repository.LocalRepository;
import org.apache.continuum.repository.RepositoryServiceException;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
-import org.apache.continuum.web.util.RegexPatternConstants;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -40,7 +38,6 @@ import org.slf4j.LoggerFactory;
*/
public class AddProjectGroupAction
extends ContinuumActionSupport
- implements Validateable
{
private static final Logger logger = LoggerFactory.getLogger( AddProjectGroupAction.class );
@@ -62,75 +59,43 @@ public class AddProjectGroupAction
repositories = getContinuum().getRepositoryService().getAllLocalRepositories();
}
- public void validate()
- {
- clearErrorsAndMessages();
- if ( name != null && name.equals( "" ) )
- {
- addActionError( getText( "projectGroup.error.name.required" ) );
- }
- else if ( name != null && name.trim().equals( "" ) )
+ public String execute()
+ {
+ try
{
- addActionError( getText( "projectGroup.error.name.cannot.be.spaces" ) );
+ checkAddProjectGroupAuthorization();
}
- else if ( name != null && !name.trim().matches( RegexPatternConstants.NAME_REGEX ) )
+ catch ( AuthorizationRequiredException authzE )
{
- addActionError( getText( "projectGroup.error.name.invalid" ) );
+ addActionError( authzE.getMessage() );
+ return REQUIRES_AUTHORIZATION;
}
- else if ( name != null && !name.equals( "" ) )
+
+ for ( ProjectGroup projectGroup : getContinuum().getAllProjectGroups() )
{
- for ( ProjectGroup projectGroup : getContinuum().getAllProjectGroups() )
+ if ( name.equals( projectGroup.getName() ) )
{
- if ( name.equals( projectGroup.getName() ) )
- {
- addActionError( getText( "projectGroup.error.name.already.exists" ) );
- break;
- }
+ addActionError( getText( "projectGroup.error.name.already.exists" ) );
+ break;
}
}
- if ( groupId != null && groupId.equals( "" ) )
- {
- addActionError( getText( "projectGroup.error.groupId.required" ) );
- }
- else if ( groupId != null && groupId.trim().equals( "" ) )
- {
- addActionError( getText( "projectGroup.error.groupId.cannot.be.spaces" ) );
- }
- else if ( groupId != null && !groupId.trim().matches( RegexPatternConstants.GROUP_ID_REGEX ))
- {
- addActionError( getText( "projectGroup.error.groupId.invalid" ) );
- }
- else
+
+ try
{
- try
- {
- if ( getContinuum().getProjectGroupByGroupId( groupId ) != null )
- {
- addActionError( getText( "projectGroup.error.groupId.already.exists" ) );
- }
- }
- catch ( ContinuumException e )
+ if ( getContinuum().getProjectGroupByGroupId( groupId ) != null )
{
- //since we want to add a new project group, we should be getting
- //this exception
+ addActionError( getText( "projectGroup.error.groupId.already.exists" ) );
}
}
- if( description != null && !description.trim().matches( RegexPatternConstants.DESCRIPTION_REGEX ))
+ catch ( ContinuumException e )
{
- addActionError( getText( "projectGroup.error.description.invalid" ) );
+ //since we want to add a new project group, we should be getting
+ //this exception
}
- }
- public String execute()
- {
- try
- {
- checkAddProjectGroupAuthorization();
- }
- catch ( AuthorizationRequiredException authzE )
+ if ( hasActionErrors() )
{
- addActionError( authzE.getMessage() );
- return REQUIRES_AUTHORIZATION;
+ return INPUT;
}
ProjectGroup projectGroup = new ProjectGroup();
@@ -139,7 +104,7 @@ public class AddProjectGroupAction
projectGroup.setGroupId( groupId.trim() );
- projectGroup.setDescription( description );
+ projectGroup.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( description ) ) );
try
{
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java Fri Apr 29 05:32:48 2011
@@ -38,6 +38,7 @@ import org.apache.maven.continuum.profil
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.apache.maven.continuum.web.exception.ContinuumActionException;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
import org.codehaus.plexus.util.StringUtils;
@@ -504,7 +505,7 @@ public class BuildDefinitionAction
buildDefinition.setProfile( profile );
}
}
- buildDefinition.setDescription( description );
+ buildDefinition.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( description ) ) );
buildDefinition.setType( buildDefinitionType );
buildDefinition.setAlwaysBuild( alwaysBuild );
buildDefinition.setUpdatePolicy( updatePolicy );
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java Fri Apr 29 05:32:48 2011
@@ -35,6 +35,7 @@ import java.util.regex.Pattern;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.ComparatorUtils;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.continuum.buildagent.NoBuildAgentException;
import org.apache.continuum.buildagent.NoBuildAgentInGroupException;
@@ -45,7 +46,6 @@ import org.apache.continuum.model.reposi
import org.apache.continuum.utils.build.BuildTrigger;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
-import org.apache.continuum.web.util.RegexPatternConstants;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildResult;
@@ -169,6 +169,14 @@ public class ProjectGroupAction
randomizer = new SecureRandom();
}
+ public void prepare()
+ throws Exception
+ {
+ super.prepare();
+
+ repositories = getContinuum().getRepositoryService().getAllLocalRepositories();
+ }
+
public String summary()
throws ContinuumException
{
@@ -484,37 +492,15 @@ public class ProjectGroupAction
addActionError( authzE.getMessage() );
return REQUIRES_AUTHORIZATION;
}
-
- if ( name != null )
+
+ for ( ProjectGroup projectGroup : getContinuum().getAllProjectGroups() )
{
- if ( name.equals( "" ) )
- {
- addActionError( getText( "projectGroup.error.name.required" ) );
- }
- else if ( name.trim().equals( "" ) )
- {
- addActionError( getText( "projectGroup.error.name.cannot.be.spaces" ) );
- }
- else if ( !name.trim().matches( RegexPatternConstants.NAME_REGEX ) )
+ if ( name.equals( projectGroup.getName() ) && projectGroup.getId() != projectGroupId )
{
- addActionError( getText( "projectGroup.error.name.invalid" ) );
- }
- else
- {
- name = name.trim();
- for ( ProjectGroup projectGroup : getContinuum().getAllProjectGroups() )
- {
- if ( name.equals( projectGroup.getName() ) && projectGroup.getId() != projectGroupId )
- {
- addActionError( getText( "projectGroup.error.name.already.exists" ) );
- }
- }
+ addActionError( getText( "projectGroup.error.name.already.exists" ) );
}
}
- if ( description != null && !description.trim().matches( RegexPatternConstants.DESCRIPTION_REGEX ) )
- {
- addActionError( getText( "projectGroup.error.description.invalid" ) );
- }
+
if ( hasActionErrors() )
{
initialize();
@@ -544,7 +530,7 @@ public class ProjectGroupAction
}
- projectGroup.setDescription( description );
+ projectGroup.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( description ) ) );
// [CONTINUUM-2228]. In select field can't select empty values.
if ( repositoryId > 0 )
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java Fri Apr 29 05:32:48 2011
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
@@ -283,7 +284,7 @@ public class ScheduleAction
schedule.setActive( active );
schedule.setCronExpression( getCronExpression() );
schedule.setDelay( delay );
- schedule.setDescription( description );
+ schedule.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( description ) ) );
schedule.setName( name );
schedule.setMaxJobExecutionTime(maxJobExecutionTime);
if (!getContinuum().getConfiguration().isDistributedBuildEnabled()) {
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java Fri Apr 29 05:32:48 2011
@@ -29,6 +29,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.web.util.AuditLog;
import org.apache.continuum.web.util.AuditLogConstants;
import org.apache.maven.continuum.ContinuumException;
@@ -243,6 +244,10 @@ public class BuildDefinitionTemplateActi
throws Exception
{
Schedule schedule = null;
+
+ // need to escape xml to prevent xss attacks
+ buildDefinition.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( buildDefinition.getDescription() ) ) );
+
if ( buildDefinition.getProfile() != null )
{
Profile profile = getContinuum().getProfileService().getProfile( buildDefinition.getProfile().getId() );
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/BuildAgentAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/BuildAgentAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/BuildAgentAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/BuildAgentAction.properties Fri Apr 29 05:32:48 2011
@@ -19,7 +19,6 @@
buildAgent.url.required = Build agent url is required.
buildAgent.url.invalid = Build agent url is invalid.
-buildAgent.description.invalid = Build agent description contains invalid characters.
buildAgent.error.exist = Build agent already exists.
buildAgent.error.delete.busy = Cannot delete build agent because it's busy at the moment
buildAgent.error.notfound = Build agent does not exist.
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/PurgeConfigurationAction-savePurgeConfig-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/PurgeConfigurationAction-savePurgeConfig-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/PurgeConfigurationAction-savePurgeConfig-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/continuum/web/action/admin/PurgeConfigurationAction-savePurgeConfig-validation.xml Fri Apr 29 05:32:48 2011
@@ -34,10 +34,4 @@
<message key="purgeConfig.retentionCount.min"/>
</field-validator>
</field>
- <field name="description">
- <field-validator type="regex">
- <param name="expression"><![CDATA[[A-Za-z0-9_.\s\-]*]]></param>
- <message key="purgeConfig.description.invalid"/>
- </field-validator>
- </field>
</validators>
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction-addProject-validation.xml Fri Apr 29 05:32:48 2011
@@ -32,13 +32,6 @@
<message key="addProject.name.invalid"/>
</field-validator>
</field>
- <field name="projectDescription">
- <field-validator type="regex">
- <param name="trim">true</param>
- <param name="expression"><![CDATA[[a-zA-Z0-9_.\s-]*]]></param>
- <message key="addProject.scmTag.invalid"/>
- </field-validator>
- </field>
<field name="projectVersion">
<field-validator type="requiredstring">
<message key="addProject.version.required"/>
@@ -54,8 +47,7 @@
<message key="addProject.scmUrl.required"/>
</field-validator>
<field-validator type="regex">
- <param name="trim">true</param>
- <param name="expression"><![CDATA[[a-zA-Z0-9_.:@${}\\/|#~=\[\]-]*]]></param>
+ <param name="expression"><![CDATA[[a-zA-Z0-9_.:${}#~=@\\/|\[\]-]*]]></param>
<message key="addProject.scmUrl.invalid"/>
</field-validator>
</field>
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties Fri Apr 29 05:32:48 2011
@@ -19,7 +19,6 @@
addProject.name.required = Name is required and cannot contain null or spaces only
addProject.name.invalid = Name contains invalid characters.
-addProject.description.invalid = Description contains invalid characters.
addProject.version.required = Version is required and cannot contain null or spaces only.
addProject.version.invalid = Version contains invalid characters.
addProject.scmUrl.required = SCM Url is required and cannot contain null or spaces only.
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction-addProjectGroup-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction-addProjectGroup-validation.xml?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction-addProjectGroup-validation.xml (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction-addProjectGroup-validation.xml Fri Apr 29 05:32:48 2011
@@ -0,0 +1,43 @@
+<!--
+ ~ 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.
+ -->
+
+<!DOCTYPE validators PUBLIC
+ "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+ <field name="name">
+ <field-validator type="requiredstring">
+ <message key="addProjectGroup.name.required"/>
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[[A-Za-z0-9_.\s\-]*]]></param>
+ <message key="addProjectGroup.name.invalid"/>
+ </field-validator>
+ </field>
+ <field name="groupId">
+ <field-validator type="requiredstring">
+ <message key="addProjectGroup.groupId.required"/>
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[[a-zA-Z0-9.\\s]*]]></param>
+ <message key="addProjectGroup.groupId.invalid"/>
+ </field-validator>
+ </field>
+</validators>
\ No newline at end of file
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties Fri Apr 29 05:32:48 2011
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+
+addProjectGroup.name.required = Project Group Name is required
+addProjectGroup.name.invalid = Name contains invalid characters.
+addProjectGroup.groupId.required = Project Group ID is required
+addProjectGroup.groupId.invalid = Id contains invalid characters.
+
Propchange: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction.properties
------------------------------------------------------------------------------
svn:executable = *
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties Fri Apr 29 05:32:48 2011
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+addProjectGroup.name.required = Es mu\u00DF ein Projektgruppen-Name angegeben werden.
Propchange: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_de.properties
------------------------------------------------------------------------------
svn:executable = *
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties Fri Apr 29 05:32:48 2011
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+
Propchange: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_en.properties
------------------------------------------------------------------------------
svn:executable = *
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties Fri Apr 29 05:32:48 2011
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+addProjectGroup.name.required = le nom du groupe de projets est obligatoire
Propchange: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_fr.properties
------------------------------------------------------------------------------
svn:executable = *
Added: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties?rev=1097686&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties (added)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties Fri Apr 29 05:32:48 2011
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+addProjectGroup.name.required=Nome de Grupo do Projeto \u00E9 obrigat\u00F3rio
Propchange: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectGroupAction_pt_BR.properties
------------------------------------------------------------------------------
svn:executable = *
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveBuildDefinition-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveBuildDefinition-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveBuildDefinition-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction-saveBuildDefinition-validation.xml Fri Apr 29 05:32:48 2011
@@ -46,11 +46,4 @@
<message key="buildDefinition.arguments.invalid"/>
</field-validator>
</field>
- <field name="description">
- <field-validator type="regex">
- <param name="trim">true</param>
- <param name="expression"><![CDATA[[a-zA-Z0-9_.\s-]*]]></param>
- <message key="buildDefinition.description.invalid"/>
- </field-validator>
- </field>
</validators>
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/BuildDefinitionAction.properties Fri Apr 29 05:32:48 2011
@@ -20,5 +20,4 @@
buildDefinition.buildFile.required = Build file is required and cannot contain spaces only.
buildDefinition.buildFile.invalid = Build file contains invalid characters.
buildDefinition.goals.invalid = Goals contains invalid characters.
-buildDefinition.arguments.invalid = Arguments contains invalid characters.
-buildDefinition.description.invalid = Description contains invalid characters.
+buildDefinition.arguments.invalid = Arguments contains invalid characters.
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction-saveProjectGroup-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction-saveProjectGroup-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction-saveProjectGroup-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction-saveProjectGroup-validation.xml Fri Apr 29 05:32:48 2011
@@ -23,8 +23,12 @@
<validators>
<field name="name">
- <field-validator type="required">
+ <field-validator type="requiredstring">
<message key="projectGroup.name.required"/>
</field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[[A-Za-z0-9_.\s\-]*]]></param>
+ <message key="projectGroup.name.invalid"/>
+ </field-validator>
</field>
</validators>
\ No newline at end of file
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ProjectGroupAction.properties Fri Apr 29 05:32:48 2011
@@ -19,6 +19,4 @@
projectGroup.name.required = Project Group Name is required
projectGroup.name.invalid = Name contains invalid characters.
-projectGroup.id.invalid = Id contains invalid characters.
-projectGroup.description.invalid = Description contains invalid characters.
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction-saveSchedule-validation.xml Fri Apr 29 05:32:48 2011
@@ -34,12 +34,7 @@
</field>
<field name="description">
<field-validator type="requiredstring">
- <message key="schedule.version.required"/>
- </field-validator>
- <field-validator type="regex">
- <param name="trim">true</param>
- <param name="expression"><![CDATA[[a-zA-Z0-9_.\s-]*]]></param>
- <message key="schedule.version.invalid"/>
+ <message key="schedule.description.required"/>
</field-validator>
</field>
<field name="maxJobExecutionTime">
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction.properties Fri Apr 29 05:32:48 2011
@@ -19,8 +19,7 @@
schedule.name.required = Name is required and cannot contain spaces only.
schedule.name.invalid = Name contains invalid characters.
-schedule.version.required = Description is required and cannot contain spaces only.
-schedule.version.invalid = Description contains invalid characters.
+schedule.description.required = Description is required and cannot contain spaces only.
schedule.maxJobExecutionTime.required = Maximum job execution time is required.
schedule.maxJobExecutionTime.invalid = Maximum job execution time must be an integer.
schedule.delay.invalid = Quiet period must be an integer.
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_de.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_de.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_de.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_de.properties Fri Apr 29 05:32:48 2011
@@ -18,7 +18,7 @@
#
schedule.name.required = Es mu\u00DF ein Name angegeben werden.
-schedule.version.required = Es mu\u00DF eine Beschreibung angegeben werden.
+schedule.description.required = Es mu\u00DF eine Beschreibung angegeben werden.
schedule.maxJobExecutionTime.required = Es mu\u00DF eine maximale Ausf\u00FChrungszeit angegeben werden.
schedule.maxJobExecutionTime.invalid = Es mu\u00DF eine Zahl f\u00FCr die maximale Ausf\u00FChrungszeit angegeben werden.
schedule.delay.invalid = Es mu\u00DF eine Zahl f\u00FCr die Ruhezeit angegeben werden.
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_fr.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_fr.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_fr.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_fr.properties Fri Apr 29 05:32:48 2011
@@ -18,7 +18,7 @@
#
schedule.name.required = le nom est obligatoire et ne peut pas contenir uniquement des espaces
-schedule.version.required = la description est obligatoire et ne peut pas contenir uniquement des espaces
+schedule.description.required = la description est obligatoire et ne peut pas contenir uniquement des espaces
schedule.maxJobExecutionTime.required = le temp d''ex\u00e9cution du travail maximum est obligatoire
schedule.maxJobExecutionTime.invalid = le temp d''ex\u00e9cution du travail maximum doit \u00eatre un entier
schedule.delay.invalid = la p\u00e9riode d''attente doit \u00eatre un entier
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_pt_BR.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_pt_BR.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_pt_BR.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ScheduleAction_pt_BR.properties Fri Apr 29 05:32:48 2011
@@ -20,4 +20,4 @@ schedule.delay.invalid=Per\u00EDodo de e
schedule.maxJobExecutionTime.invalid=Tempo de execu\u00E7\u00E3o m\u00E1xima de um job deve ser um inteiro
schedule.maxJobExecutionTime.required=Tempo de execu\u00E7\u00E3o m\u00E1xima de um job \u00E9 obrigat\u00F3rio
schedule.name.required=Nome \u00E9 obrigat\u00F3rio e n\u00E3o pode conter somente espa\u00E7os
-schedule.version.required=Descri\u00E7\u00E3o \u00E9 obrigat\u00F3ria e n\u00E3o pode conter somente espa\u00E7os
+schedule.description.required=Descri\u00E7\u00E3o \u00E9 obrigat\u00F3ria e n\u00E3o pode conter somente espa\u00E7os
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml Fri Apr 29 05:32:48 2011
@@ -35,10 +35,6 @@
<field-validator type="requiredstring">
<message key="buildDefinition.description.required"/>
</field-validator>
- <field-validator type="regex">
- <param name="expression"><![CDATA[[A-Za-z0-9_.\s\-]*]]></param>
- <message key="buildDefinition.description.invalid"/>
- </field-validator>
</field>
<field name="buildDefinition.goals">
<field-validator type="regex">
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties Fri Apr 29 05:32:48 2011
@@ -23,6 +23,5 @@ buildDefinitionTemplate.name.invalid = N
buildDefinition.buildFile.required = BuildFile is required
buildDefinition.buildFile.invalid = BuildFile contains invalid characters
buildDefinition.description.required = Description is required
-buildDefinition.description.invalid = Description contains invalid characters
buildDefinition.goals.invalid = Goals contain invalid characters
buildDefinition.arguments.invalid = Arguments contain invalid characters
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp Fri Apr 29 05:32:48 2011
@@ -30,8 +30,7 @@
<h3><s:text name="projectGroup.add.section.title"/></h3>
<div class="axial">
- <s:url id="actionUrl" action="addProjectGroup" includeContext="false" />
- <s:form action="%{actionUrl}" method="post" >
+ <s:form action="addProjectGroup" method="post" validate="true">
<c:if test="${!empty actionErrors}">
<div class="errormessage">
<s:iterator value="actionErrors">
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp Fri Apr 29 05:32:48 2011
@@ -32,18 +32,18 @@
<div class="axial">
<s:form action="saveProjectGroup" method="post" validate="true">
- <s:if test="projectInCOQueue">
- <div class="label">
- <p><s:text name="%{getText('project.in.checkout.queue.error')}"/></p>
- </div >
- </s:if>
- <c:if test="${!empty actionErrors}">
+ <s:if test="projectInCOQueue">
+ <div class="label">
+ <p><s:text name="%{getText('project.in.checkout.queue.error')}"/></p>
+ </div >
+ </s:if>
+ <c:if test="${!empty actionErrors}">
<div class="errormessage">
<s:iterator value="actionErrors">
<p><s:property/></p>
</s:iterator>
</div>
- </c:if>
+ </c:if>
<table>
<tbody>
<s:hidden name="projectGroupId"/>
Modified: continuum/trunk/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/AddProjectActionTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/AddProjectActionTest.java?rev=1097686&r1=1097685&r2=1097686&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/AddProjectActionTest.java (original)
+++ continuum/trunk/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/AddProjectActionTest.java Fri Apr 29 05:32:48 2011
@@ -44,24 +44,14 @@ public class AddProjectActionTest
private static final String VALID_NAME_CHARACTER = "abcABC123whitespaces_.:-";
- private static final String INVALID_NAME_CHARACTER = "!@#$<>?etc";
-
private static final String VALID_VERSION_CHARACTER = "abcABC123.-";
-
- private static final String INVALID_VERSION_CHARACTER = "<>whitespaces!#etc";
-
+
private static final String VALID_SCM_URL_CHARACTER = "abcABC123_.:-#~=@\\/|[]";
- private static final String INVALID_SCM_URL_CHARACTER = "!<>*%etc";
-
private static final String VALID_SCM_TAG_CHARACTER = "abcABC123_.:-#~=@\\/|[]";
-
- private static final String INVALID_SCM_TAG_CHARACTER = "!<>*%etc";
private static final String VALID_DESCRIPTION_CHARACTER = "abcABC123whitespaces_.-";
-
- private static final String INVALID_DESCRIPTION_CHARACTER = "![]<>'^&etc";
-
+
protected void setUp()
throws Exception
{
@@ -144,25 +134,6 @@ public class AddProjectActionTest
continuumMock.verify();
}
- public void testAddAntProjectWithInvalidValues()
- {
- action.setProjectName( INVALID_NAME_CHARACTER );
- action.setProjectDescription( INVALID_DESCRIPTION_CHARACTER );
- action.setProjectVersion( INVALID_VERSION_CHARACTER );
- action.setProjectScmUrl( INVALID_SCM_URL_CHARACTER );
- action.setProjectScmTag( INVALID_SCM_TAG_CHARACTER );
- action.setProjectType( "ant" );
- action.setSelectedProjectGroup( 1 );
- action.setBuildDefintionTemplateId( 1 );
-
- // validate
- action.validate();
-
- // verify
- assertTrue( action.hasActionErrors() );
- assertEquals( 5, action.getActionErrors().size() );
- }
-
/**
* Test add of Shell project
*
@@ -218,25 +189,6 @@ public class AddProjectActionTest
continuumMock.verify();
}
- public void testAddShellProjectWithInvalidValues()
- {
- action.setProjectName( INVALID_NAME_CHARACTER );
- action.setProjectDescription( INVALID_DESCRIPTION_CHARACTER );
- action.setProjectVersion( INVALID_VERSION_CHARACTER );
- action.setProjectScmUrl( INVALID_SCM_URL_CHARACTER );
- action.setProjectScmTag( INVALID_SCM_TAG_CHARACTER );
- action.setProjectType( "shell" );
- action.setSelectedProjectGroup( 1 );
- action.setBuildDefintionTemplateId( 1 );
-
- // validate
- action.validate();
-
- // verify
- assertTrue( action.hasActionErrors() );
- assertEquals( 5, action.getActionErrors().size() );
- }
-
private List<Project> createProjectList()
{
List<Project> projects = new ArrayList<Project>();