]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6586 Fix user login length check 340/head
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Fri, 29 May 2015 07:43:42 +0000 (09:43 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Fri, 29 May 2015 09:27:13 +0000 (11:27 +0200)
server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java
server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java

index f10432b376973f87123db9013ec9e40498d47002..557d398fd6f608459f4b464cfc038afccd11a51b 100644 (file)
@@ -58,6 +58,9 @@ public class UserUpdater {
   private static final String NAME_PARAM = "Name";
   private static final String EMAIL_PARAM = "Email";
 
+  private static final int LOGIN_MIN_LENGTH = 3;
+  private static final int LOGIN_MAX_LENGTH = 255;
+
   private final NewUserNotifier newUserNotifier;
   private final Settings settings;
   private final DbClient dbClient;
@@ -211,10 +214,10 @@ public class UserUpdater {
   private static void validateLoginFormat(@Nullable String login, List<Message> messages) {
     checkNotEmptyParam(login, LOGIN_PARAM, messages);
     if (!Strings.isNullOrEmpty(login)) {
-      if (login.length() <= 2) {
-        messages.add(Message.of(Validation.IS_TOO_SHORT_MESSAGE, LOGIN_PARAM, 2));
-      } else if (login.length() >= 255) {
-        messages.add(Message.of(Validation.IS_TOO_LONG_MESSAGE, LOGIN_PARAM, 255));
+      if (login.length() < LOGIN_MIN_LENGTH) {
+        messages.add(Message.of(Validation.IS_TOO_SHORT_MESSAGE, LOGIN_PARAM, LOGIN_MIN_LENGTH));
+      } else if (login.length() >= LOGIN_MAX_LENGTH) {
+        messages.add(Message.of(Validation.IS_TOO_LONG_MESSAGE, LOGIN_PARAM, LOGIN_MAX_LENGTH));
       } else if (!login.matches("\\A\\w[\\w\\.\\-_@\\s]+\\z")) {
         messages.add(Message.of("user.bad_login"));
       }
index f574c9e5b83c285db59c85ed30009ccb273f87dd..a9169d47908c6ef608f9b320bd5c159c1a1209df 100644 (file)
@@ -251,7 +251,7 @@ public class UserUpdaterTest {
         .setPasswordConfirmation("password"));
       fail();
     } catch (BadRequestException e) {
-      assertThat(e.errors().messages()).containsOnly(Message.of(Validation.IS_TOO_SHORT_MESSAGE, "Login", 2));
+      assertThat(e.errors().messages()).containsOnly(Message.of(Validation.IS_TOO_SHORT_MESSAGE, "Login", 3));
     }
   }