Object name validator component
* Moved the component from the -user package to the -naming package * Added a separate interface to the component
This commit is contained in:
parent
35d8891fe3
commit
b4903d78e4
14 changed files with 483 additions and 104 deletions
legacyworlds-server-beans-user/src/main
java/com/deepclone/lw/beans/user
resources/configuration/meta
|
@ -1,77 +0,0 @@
|
|||
package com.deepclone.lw.beans.user;
|
||||
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.deepclone.lw.cmd.ObjectNameError;
|
||||
|
||||
|
||||
|
||||
public class ObjectNameValidatorBean
|
||||
{
|
||||
|
||||
private int minLength = 2;
|
||||
private int maxLength = 20;
|
||||
|
||||
private static Pattern fail[] = {
|
||||
Pattern.compile( "\\s\\s+" ) ,
|
||||
Pattern.compile( "[^A-Za-z0-9 _\\'\\!\\:\\,\\-\\.\\*@\\[\\]\\{\\}]" )
|
||||
};
|
||||
|
||||
private static Pattern needed[] = {
|
||||
Pattern.compile( "[A-Za-z]" )
|
||||
};
|
||||
|
||||
|
||||
public void setMinLength( Integer v )
|
||||
{
|
||||
this.minLength = v;
|
||||
}
|
||||
|
||||
|
||||
public void setMaxLength( Integer v )
|
||||
{
|
||||
this.maxLength = v;
|
||||
}
|
||||
|
||||
|
||||
public ObjectNameError validate( String name )
|
||||
{
|
||||
return this.customValidate( name , this.minLength , this.maxLength );
|
||||
}
|
||||
|
||||
|
||||
public ObjectNameError customValidate( String name , int minLength , int maxLength )
|
||||
{
|
||||
if ( "".equals( name.trim( ) ) ) {
|
||||
return ObjectNameError.EMPTY;
|
||||
}
|
||||
|
||||
// No leading or trailing spaces
|
||||
if ( !name.equals( name.trim( ) ) ) {
|
||||
return ObjectNameError.INVALID;
|
||||
}
|
||||
|
||||
// Check length
|
||||
int length = name.length( );
|
||||
if ( length < minLength || length > maxLength ) {
|
||||
return ObjectNameError.INVALID;
|
||||
}
|
||||
|
||||
// Check bad patterns
|
||||
for ( Pattern p : ObjectNameValidatorBean.fail ) {
|
||||
if ( p.matcher( name ).find( ) ) {
|
||||
return ObjectNameError.INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
// Check good patterns
|
||||
for ( Pattern p : ObjectNameValidatorBean.needed ) {
|
||||
if ( !p.matcher( name ).find( ) ) {
|
||||
return ObjectNameError.INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.admin.main.su;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.cmd.ObjectNameError;
|
||||
import com.deepclone.lw.cmd.admin.adata.Administrator;
|
||||
import com.deepclone.lw.cmd.admin.adata.Privileges;
|
||||
|
@ -11,6 +10,7 @@ import com.deepclone.lw.cmd.admin.su.AddAdministratorCommand;
|
|||
import com.deepclone.lw.cmd.admin.su.AddAdministratorResponse;
|
||||
import com.deepclone.lw.cmd.admin.su.AddAdministratorResponse.AddressError;
|
||||
import com.deepclone.lw.interfaces.admin.Administration;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
import com.deepclone.lw.utils.EmailAddress;
|
||||
|
@ -22,7 +22,7 @@ public class AddAdministratorCommandDelegateBean
|
|||
{
|
||||
|
||||
private Administration administration;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -33,7 +33,7 @@ public class AddAdministratorCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setValidator( ObjectNameValidatorBean validator )
|
||||
public void setValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public class AddAdministratorCommandDelegateBean
|
|||
if ( "".equals( name ) ) {
|
||||
nameError = ObjectNameError.EMPTY;
|
||||
} else {
|
||||
nameError = this.validator.customValidate( name , 2 , 64 );
|
||||
nameError = this.validator.validate( name , 2 , 64 );
|
||||
}
|
||||
|
||||
// Check address
|
||||
|
|
|
@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.cmd.ObjectNameError;
|
||||
import com.deepclone.lw.cmd.player.account.AccountValidationCommand;
|
||||
import com.deepclone.lw.cmd.player.account.AccountValidationResponse;
|
||||
import com.deepclone.lw.interfaces.acm.AccountManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -23,7 +23,7 @@ public class ValidationCommandDelegateBean
|
|||
{
|
||||
|
||||
private AccountManagement manager;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -34,7 +34,7 @@ public class ValidationCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
|
||||
|
@ -11,6 +10,7 @@ import com.deepclone.lw.cmd.ObjectNameError;
|
|||
import com.deepclone.lw.cmd.player.GetNewPlanetCommand;
|
||||
import com.deepclone.lw.cmd.player.GetNewPlanetResponse;
|
||||
import com.deepclone.lw.interfaces.game.EmpireManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -23,7 +23,7 @@ public class GetNewPlanetCommandDelegateBean
|
|||
{
|
||||
|
||||
private EmpireManagement empireManagement;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -34,7 +34,7 @@ public class GetNewPlanetCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game.alliances;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
|
||||
|
@ -13,6 +12,7 @@ import com.deepclone.lw.cmd.player.alliances.CreateAllianceCommand;
|
|||
import com.deepclone.lw.cmd.player.alliances.CreateAllianceResponse;
|
||||
import com.deepclone.lw.cmd.player.gdata.alliance.AllianceCreationStatus;
|
||||
import com.deepclone.lw.interfaces.game.AllianceManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -24,7 +24,7 @@ public class CreateAllianceCommandDelegateBean
|
|||
{
|
||||
|
||||
private AllianceManagement allianceManagement;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -35,7 +35,7 @@ public class CreateAllianceCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
@ -65,10 +65,10 @@ public class CreateAllianceCommandDelegateBean
|
|||
}
|
||||
|
||||
String tag = command.getTag( );
|
||||
ObjectNameError tagError = this.validator.customValidate( tag , 2 , 5 );
|
||||
ObjectNameError tagError = this.validator.validate( tag , 2 , 5 );
|
||||
|
||||
String name = command.getName( );
|
||||
ObjectNameError nameError = this.validator.customValidate( name , 5 , 64 );
|
||||
ObjectNameError nameError = this.validator.validate( name , 5 , 64 );
|
||||
|
||||
if ( tagError != null || nameError != null ) {
|
||||
AllianceStatusResponse r = this.allianceManagement.getView( empireId );
|
||||
|
|
|
@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player.game.fleets;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
|
||||
import com.deepclone.lw.cmd.player.fleets.RenameFleetsCommand;
|
||||
import com.deepclone.lw.cmd.player.fleets.RenameFleetsResponse;
|
||||
import com.deepclone.lw.interfaces.game.FleetManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -20,7 +20,7 @@ public class RenameFleetsCommandDelegateBean
|
|||
implements AutowiredCommandDelegate
|
||||
{
|
||||
private FleetManagement fleetManager;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -31,7 +31,7 @@ public class RenameFleetsCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class RenameFleetsCommandDelegateBean
|
|||
boolean error;
|
||||
if ( command.isRename( ) ) {
|
||||
name = command.getName( ).trim( );
|
||||
if ( !"".equals( name ) && this.validator.customValidate( name , 1 , 40 ) != null ) {
|
||||
if ( !"".equals( name ) && this.validator.validate( name , 1 , 40 ) != null ) {
|
||||
error = true;
|
||||
name = null;
|
||||
} else {
|
||||
|
|
|
@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player.game.fleets;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
|
||||
import com.deepclone.lw.cmd.player.fleets.SplitFleetCommand;
|
||||
import com.deepclone.lw.cmd.player.fleets.SplitFleetResponse;
|
||||
import com.deepclone.lw.interfaces.game.FleetManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -20,7 +20,7 @@ public class SplitFleetCommandDelegateBean
|
|||
implements AutowiredCommandDelegate
|
||||
{
|
||||
private FleetManagement fleetManager;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -31,7 +31,7 @@ public class SplitFleetCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class SplitFleetCommandDelegateBean
|
|||
boolean error;
|
||||
if ( name != null ) {
|
||||
name = command.getName( ).trim( );
|
||||
if ( !"".equals( name ) && this.validator.customValidate( name , 1 , 40 ) != null ) {
|
||||
if ( !"".equals( name ) && this.validator.validate( name , 1 , 40 ) != null ) {
|
||||
error = true;
|
||||
name = "";
|
||||
} else {
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game.planets;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
|
||||
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
|
||||
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
|
||||
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
|
||||
|
@ -12,6 +11,7 @@ import com.deepclone.lw.cmd.player.planets.RenamePlanetCommand;
|
|||
import com.deepclone.lw.cmd.player.planets.RenamePlanetResponse;
|
||||
import com.deepclone.lw.cmd.player.planets.ViewPlanetResponse;
|
||||
import com.deepclone.lw.interfaces.game.PlanetsManagement;
|
||||
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
|
||||
import com.deepclone.lw.interfaces.session.ServerSession;
|
||||
import com.deepclone.lw.session.Command;
|
||||
import com.deepclone.lw.session.CommandResponse;
|
||||
|
@ -24,7 +24,7 @@ public class RenamePlanetCommandDelegateBean
|
|||
{
|
||||
|
||||
private PlanetsManagement planetsManagement;
|
||||
private ObjectNameValidatorBean validator;
|
||||
private ObjectNameValidator validator;
|
||||
|
||||
|
||||
@Autowired( required = true )
|
||||
|
@ -35,7 +35,7 @@ public class RenamePlanetCommandDelegateBean
|
|||
|
||||
|
||||
@Autowired( required = true )
|
||||
public void setObjectNameValidator( ObjectNameValidatorBean validator )
|
||||
public void setObjectNameValidator( ObjectNameValidator validator )
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<bean id="objectNameValidator" class="com.deepclone.lw.beans.user.ObjectNameValidatorBean" />
|
||||
<bean id="sessionCommandWiring" class="com.deepclone.lw.beans.user.abst.SessionCommandWiringBean" />
|
||||
<bean id="sessionSubTypeWiring" class="com.deepclone.lw.beans.user.abst.SessionSubTypeWiringBean" />
|
||||
|
||||
|
|
Reference in a new issue