From 44e7ca131970744ed1b667048a895bb622804196 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Fri, 29 May 2015 09:43:42 +0200 Subject: [PATCH] SONAR-6586 Fix user login length check --- .../main/java/org/sonar/server/user/UserUpdater.java | 11 +++++++---- .../java/org/sonar/server/user/UserUpdaterTest.java | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java b/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java index f10432b3769..557d398fd6f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java +++ b/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java @@ -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 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")); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java index f574c9e5b83..a9169d47908 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java @@ -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)); } } -- 2.39.5