diff --git a/Mage.Server/src/main/java/mage/server/Session.java b/Mage.Server/src/main/java/mage/server/Session.java index 90bc5bc8879..eda0f133924 100644 --- a/Mage.Server/src/main/java/mage/server/Session.java +++ b/Mage.Server/src/main/java/mage/server/Session.java @@ -119,15 +119,8 @@ public class Session { return null; } } - - private String validateUserName(String userName) { - // return error message or null on good name - - if (userName.equals("Admin")) { - // virtual user for admin console - return "User name Admin already in use"; - } - + + private String validateUserNameLength(String userName) { ConfigSettings config = managerFactory.configSettings(); if (userName.length() < config.getMinUserNameLength()) { return "User name may not be shorter than " + config.getMinUserNameLength() + " characters"; @@ -135,6 +128,26 @@ public class Session { if (userName.length() > config.getMaxUserNameLength()) { return "User name may not be longer than " + config.getMaxUserNameLength() + " characters"; } + if (userName.length() <= 3) { + return "User name is too short (3 characters or fewer)"; + } + if (userName.length() >= 500) { + return "User name is too long (500 characters or more)"; + } + return null; + } + + private String validateUserName(String userName) { + // return error message or null on good name + if (userName.equals("Admin")) { + // virtual user for admin console + return "User name Admin already in use"; + } + + String returnMessage = validateUserNameLength(userName); + if (returnMessage != null) { + return returnMessage; + } Pattern invalidUserNamePattern = Pattern.compile(managerFactory.configSettings().getInvalidUserNamePattern(), Pattern.CASE_INSENSITIVE); Matcher m = invalidUserNamePattern.matcher(userName); @@ -183,7 +196,12 @@ public class Session { } public String connectUser(String userName, String password) throws MageException { - String returnMessage = connectUserHandling(userName, password); + String returnMessage = validateUserNameLength(userName); + if (returnMessage != null) { + sendErrorMessageToClient(returnMessage); + return returnMessage; + } + returnMessage = connectUserHandling(userName, password); if (returnMessage != null) { sendErrorMessageToClient(returnMessage); }