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 cbc2313e26aa99cf73f2c6514f982ad4dc8df13a
Author: Quan Tran <hqt...@linagora.com>
AuthorDate: Wed Aug 23 16:40:22 2023 +0700

    JAMES-3936 DomainsRoutes should not decode request param 2 times
---
 .../apache/james/webadmin/routes/DomainsRoutes.java | 21 ++-------------------
 .../james/webadmin/routes/DomainsRoutesTest.java    | 21 ++-------------------
 2 files changed, 4 insertions(+), 38 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
 
b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
index 34ef2f9ab9..cba41954db 100644
--- 
a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
+++ 
b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
@@ -21,9 +21,6 @@ package org.apache.james.webadmin.routes;
 
 import static org.apache.james.webadmin.Constants.SEPARATOR;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -203,27 +200,13 @@ public class DomainsRoutes implements Routes {
     }
 
     private Domain checkValidDomain(String domainName) {
-        String urlDecodedDomainName = urlDecodeDomain(domainName);
         try {
-            return Domain.of(urlDecodedDomainName);
+            return Domain.of(domainName);
         } catch (IllegalArgumentException e) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
                 .type(ErrorType.INVALID_ARGUMENT)
-                .message("Invalid request for domain creation %s", 
urlDecodedDomainName)
-                .cause(e)
-                .haltError();
-        }
-    }
-
-    private String urlDecodeDomain(String domainName) {
-        try {
-            return URLDecoder.decode(domainName, 
StandardCharsets.UTF_8.toString());
-        } catch (IllegalArgumentException | UnsupportedEncodingException e) {
-            throw ErrorResponder.builder()
-                .statusCode(HttpStatus.BAD_REQUEST_400)
-                .type(ErrorType.INVALID_ARGUMENT)
-                .message("Invalid request for domain creation %s unable to url 
decode some characters", domainName)
+                .message("Invalid request for domain creation %s", domainName)
                 .cause(e)
                 .haltError();
         }
diff --git 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
index 82b88af391..7a61cc1a48 100644
--- 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
+++ 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
@@ -117,6 +117,7 @@ class DomainsRoutesTest {
 
         RestAssured.requestSpecification = 
WebAdminUtils.buildRequestSpecification(webAdminServer)
             .setBasePath(DomainsRoutes.DOMAINS)
+            .setUrlEncodingEnabled(false) // no further automatically encoding 
by Rest Assured client
             .build();
     }
 
@@ -332,7 +333,7 @@ class DomainsRoutesTest {
         }
 
         @Test
-        void putShouldReturnUserErrorWhenNameContainsUrlEncodedUrlOperator() {
+        void putWithDomainNameContainsSlashEncodedShouldDecodeAndReturnError() 
{
             Map<String, Object> errors = when()
                 .put(DOMAIN + "%2F" + DOMAIN)
             .then()
@@ -349,24 +350,6 @@ class DomainsRoutesTest {
                 .containsEntry("message", "Invalid request for domain creation 
domain/domain");
         }
 
-        @Test
-        void 
putShouldReturnUserErrorWhenNameContainsInvalidUrlEncodedCharacters() {
-            Map<String, Object> errors = when()
-                .put(DOMAIN + "%GG" + DOMAIN)
-            .then()
-                .statusCode(HttpStatus.BAD_REQUEST_400)
-                .contentType(ContentType.JSON)
-                .extract()
-                .body()
-                .jsonPath()
-                .getMap(".");
-
-            assertThat(errors)
-                .containsEntry("statusCode", HttpStatus.BAD_REQUEST_400)
-                .containsEntry("type", "InvalidArgument")
-                .containsEntry("message", "Invalid request for domain creation 
domain%GGdomain unable to url decode some characters");
-        }
-
         @Test
         void putShouldReturnUserErrorWhenNameContainsUrlSeparator() {
             when()


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

Reply via email to