This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 95ab2ec6852b23a6e3dc5754122b1f86eff926cb Author: Benoit Tellier <[email protected]> AuthorDate: Tue Jul 7 09:00:56 2020 +0700 JAMES-2982 Improve Username validation error messages Upon bad formats, having the username value helps debugging --- core/src/main/java/org/apache/james/core/Username.java | 8 ++++---- .../java/org/apache/james/webadmin/routes/MappingRoutesTest.java | 2 +- .../org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java | 2 +- .../james/webadmin/service/MailboxesExportRequestToTaskTest.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/apache/james/core/Username.java b/core/src/main/java/org/apache/james/core/Username.java index e0c14fa..343f565 100644 --- a/core/src/main/java/org/apache/james/core/Username.java +++ b/core/src/main/java/org/apache/james/core/Username.java @@ -36,7 +36,7 @@ public class Username { public static Username of(String username) { Preconditions.checkArgument(username != null, "username should not be null or empty"); - Preconditions.checkArgument(!username.trim().isEmpty(), "username should not be null or empty"); + Preconditions.checkArgument(!username.trim().isEmpty(), "username should not be null or empty after being trimmed"); Preconditions.checkArgument(username.length() <= MAXIMUM_MAIL_ADDRESS_LENGTH, "username length should not be longer than %s characters", MAXIMUM_MAIL_ADDRESS_LENGTH); @@ -47,7 +47,7 @@ public class Username { case 2: return fromLocalPartWithDomain(parts.get(0), parts.get(1)); } - throw new IllegalArgumentException("The username should not contain multiple domain delimiter."); + throw new IllegalArgumentException("The username should not contain multiple domain delimiter. Value: " + username); } public static Username fromLocalPartWithDomain(String localPart, String domain) { @@ -82,8 +82,8 @@ public class Username { private Username(String localPart, Optional<Domain> domainPart) { Preconditions.checkNotNull(localPart); - Preconditions.checkArgument(!localPart.isEmpty(), "username should not be empty"); - Preconditions.checkArgument(!localPart.contains("@"), "username can not contain domain delimiter"); + Preconditions.checkArgument(!localPart.isEmpty(), "username local part should not be empty"); + Preconditions.checkArgument(!localPart.contains("@"), "username local part can not contain domain delimiter, got %s", localPart); this.localPart = localPart.toLowerCase(Locale.US); this.domainPart = domainPart; diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/MappingRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/MappingRoutesTest.java index 01fb052..588cc1d 100644 --- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/MappingRoutesTest.java +++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/MappingRoutesTest.java @@ -588,7 +588,7 @@ class MappingRoutesTest { .body("statusCode", is(400)) .body("type", is("InvalidArgument")) .body("message", is("Invalid arguments supplied in the user request")) - .body("details", is("The username should not contain multiple domain delimiter.")); + .body("details", is("The username should not contain multiple domain delimiter. Value: alice123@[email protected]")); } @Test diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java index f6db1b5..169d76f 100644 --- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java +++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java @@ -1239,7 +1239,7 @@ class UserMailboxesRoutesTest { .body("statusCode", Matchers.is(400)) .body("type", Matchers.is("InvalidArgument")) .body("message", Matchers.is("Invalid arguments supplied in the user request")) - .body("details", Matchers.is("The username should not contain multiple domain delimiter.")); + .body("details", Matchers.is("The username should not contain multiple domain delimiter. Value: bad@bad@bad")); } } diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportRequestToTaskTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportRequestToTaskTest.java index e518170..d2570c7 100644 --- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportRequestToTaskTest.java +++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportRequestToTaskTest.java @@ -180,7 +180,7 @@ class MailboxesExportRequestToTaskTest { .body("statusCode", is(400)) .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType())) .body("message", is("Invalid arguments supplied in the user request")) - .body("details", is("The username should not contain multiple domain delimiter.")); + .body("details", is("The username should not contain multiple domain delimiter. Value: bad@bad@bad")); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
