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