You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/07/09 01:51:30 UTC
[james-project] 01/06: JAMES-2982 Improve Username validation error
messages
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 <bt...@linagora.com>
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@domain@domain.tld"));
}
@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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org