This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 980d3144e9a0be6258d9570c04b9351231536aaf
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Thu Nov 21 22:19:13 2024 +0100

    [FIX] Domain validation should be more informative
---
 core/src/main/java/org/apache/james/core/Domain.java                | 5 +++--
 .../james/jmap/rfc8621/contract/MailboxSetMethodContract.scala      | 2 +-
 .../apache/james/webadmin/routes/DLPConfigurationRoutesTest.java    | 6 +++---
 .../java/org/apache/james/webadmin/routes/MappingRoutesTest.java    | 2 +-
 .../jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java | 2 +-
 .../org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java   | 2 +-
 .../james/webadmin/service/MailboxesExportRequestToTaskTest.java    | 2 +-
 .../james/webadmin/service/SubscribeAllRequestToTaskTest.java       | 2 +-
 8 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/core/src/main/java/org/apache/james/core/Domain.java 
b/core/src/main/java/org/apache/james/core/Domain.java
index 4f7c85447e..1718fdd485 100644
--- a/core/src/main/java/org/apache/james/core/Domain.java
+++ b/core/src/main/java/org/apache/james/core/Domain.java
@@ -55,14 +55,15 @@ public class Domain implements Serializable {
             "Domain name length should not exceed %s characters", 
MAXIMUM_DOMAIN_LENGTH);
 
         String domainWithoutBrackets = removeBrackets(domain);
-        
Preconditions.checkArgument(PART_CHAR_MATCHER.matchesAllOf(domainWithoutBrackets),
 "Domain parts ASCII chars must be a-z A-Z 0-9 - or _");
+        
Preconditions.checkArgument(PART_CHAR_MATCHER.matchesAllOf(domainWithoutBrackets),
+            "Domain parts ASCII chars must be a-z A-Z 0-9 - or _ in {}", 
domain);
 
         int pos = 0;
         int nextDot = domainWithoutBrackets.indexOf('.');
 
         while (nextDot > -1) {
             if (pos + 1 > domainWithoutBrackets.length()) {
-                throw new IllegalArgumentException("Last domain part should 
not be empty");
+                throw new IllegalArgumentException("Last domain part should 
not be empty in " + domain);
             }
             Domain.assertValidPart(domainWithoutBrackets, pos, nextDot);
             pos = nextDot + 1;
diff --git 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
index 52b6fb8b3d..21b0e26da0 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
@@ -5924,7 +5924,7 @@ trait MailboxSetMethodContract {
          |      "notUpdated": {
          |        "${mailboxId.serialize}": {
          |          "type": "invalidArguments",
-         |          "description": "Domain parts ASCII chars must be a-z A-Z 
0-9 - or _"
+         |          "description": "Domain parts ASCII chars must be a-z A-Z 
0-9 - or _ in {} [inva...@domain.tld]"
          |        }
          |      }
          |    }, "c1"]
diff --git 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DLPConfigurationRoutesTest.java
 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DLPConfigurationRoutesTest.java
index c6e19fee1d..be6b0bfd2f 100644
--- 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DLPConfigurationRoutesTest.java
+++ 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DLPConfigurationRoutesTest.java
@@ -329,7 +329,7 @@ class DLPConfigurationRoutesTest {
                 .body("statusCode", is(HttpStatus.BAD_REQUEST_400))
                 .body("type", is("InvalidArgument"))
                 .body("message", is("Invalid arguments supplied in the user 
request"))
-                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _"));
+                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _ in {} [d...@strange.com]"));
         }
 
         @Test
@@ -646,7 +646,7 @@ class DLPConfigurationRoutesTest {
                 .body("statusCode", is(HttpStatus.BAD_REQUEST_400))
                 .body("type", is("InvalidArgument"))
                 .body("message", is("Invalid arguments supplied in the user 
request"))
-                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _"));
+                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _ in {} [d...@strange.com]"));
         }
     }
 
@@ -859,7 +859,7 @@ class DLPConfigurationRoutesTest {
                 .body("statusCode", is(HttpStatus.BAD_REQUEST_400))
                 .body("type", is("InvalidArgument"))
                 .body("message", is("Invalid arguments supplied in the user 
request"))
-                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _"));
+                .body("details", is("Domain parts ASCII chars must be a-z A-Z 
0-9 - or _ in {} [d...@strange.com]"));
         }
     }
     
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 046deb63d5..23553143ee 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
@@ -640,7 +640,7 @@ class MappingRoutesTest {
         .body("statusCode", is(400))
         .body("type", is("InvalidArgument"))
         .body("message", is("Invalid arguments supplied in the user request"))
-        .body("details", is("Domain parts ASCII chars must be a-z A-Z 0-9 - or 
_"));
+        .body("details", is("Domain parts ASCII chars must be a-z A-Z 0-9 - or 
_ in {} [dom...@domain.tld]"));
     }
 
     @Test
diff --git 
a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java
 
b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java
index baa92c90e2..bf859d3a88 100644
--- 
a/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java
+++ 
b/server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java
@@ -242,7 +242,7 @@ class RecomputeUserFastViewProjectionItemsRequestToTaskTest 
{
             .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("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _"));
+            .body("details", is("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _ in {} [bad@bad]"));
     }
 
     @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 f40125ddc3..ac5081f4d5 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
@@ -1577,7 +1577,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("Domain parts ASCII chars 
must be a-z A-Z 0-9 - or _"));
+                    .body("details", Matchers.is("Domain parts ASCII chars 
must be a-z A-Z 0-9 - or _ in {} [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 c52d8ffc1b..5222eec1ee 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
@@ -178,7 +178,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("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _"));
+            .body("details", is("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _ in {} [bad@bad]"));
     }
 
     @Test
diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllRequestToTaskTest.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllRequestToTaskTest.java
index 414f7bdbb0..96b7947688 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllRequestToTaskTest.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllRequestToTaskTest.java
@@ -176,7 +176,7 @@ class SubscribeAllRequestToTaskTest {
             .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("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _"));
+            .body("details", is("Domain parts ASCII chars must be a-z A-Z 0-9 
- or _ in {} [bad@bad]"));
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to