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

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


The following commit(s) were added to refs/heads/master by this push:
     new b3a6cae131 fix(webapi): Create domain mappings instead of domain alias 
mappings
b3a6cae131 is described below

commit b3a6cae131a2b2cb3813ab2fe6877633caba674b
Author: Felix Auringer <[email protected]>
AuthorDate: Tue Sep 15 11:57:19 2026 +0200

    fix(webapi): Create domain mappings instead of domain alias mappings
    
    Previously, only the PUT endpoint of /domainMappings used
    domain alias mapppings. The GET and DELETE endpoints use
    domain mappings.
---
 .../webadmin/routes/DomainMappingsRoutes.java      |  8 ++-----
 .../webadmin/routes/DomainMappingsRoutesTest.java  | 26 ++++++++++++++++++++++
 2 files changed, 28 insertions(+), 6 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
 
b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
index 527178ef6b..6d4f0bdfe9 100644
--- 
a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
+++ 
b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
@@ -80,13 +80,8 @@ public class DomainMappingsRoutes implements Routes {
     public HaltException addDomainMapping(Request request, Response response) 
throws RecipientRewriteTableException {
         MappingSource mappingSource = mappingSourceFrom(request);
         Domain destinationDomain = extractDomain(request.body());
-        addAliasDomainMapping(mappingSource, destinationDomain);
-        return halt(HttpStatus.NO_CONTENT_204);
-    }
-
-    private void addAliasDomainMapping(MappingSource source, Domain 
destinationDomain) throws RecipientRewriteTableException {
         try {
-            recipientRewriteTable.addDomainAliasMapping(source, 
destinationDomain);
+            recipientRewriteTable.addDomainMapping(mappingSource, 
destinationDomain);
         } catch (SourceDomainIsNotInDomainListException e) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
@@ -94,6 +89,7 @@ public class DomainMappingsRoutes implements Routes {
                 .message(e.getMessage())
                 .haltError();
         }
+        return halt(HttpStatus.NO_CONTENT_204);
     }
 
     public HaltException removeDomainMapping(Request request, Response 
response) throws RecipientRewriteTableException {
diff --git 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java
 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java
index 6a7c02789e..05d29debab 100644
--- 
a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java
+++ 
b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java
@@ -173,6 +173,30 @@ class DomainMappingsRoutesTest {
                 .containsOnly(entry(expectedDomain.name(), 
ImmutableList.of(alias1, alias2, alias3)));
         }
 
+        @Test
+        void getDomainMappingsShouldReturnCreatedMappings() throws 
RecipientRewriteTableException {
+            String source = "from.com";
+            String target = "to.com";
+
+            with()
+                .body(target)
+                .put(source);
+
+            Map<String, List<String>> map =
+                when()
+                    .get()
+                .then()
+                    .contentType(ContentType.JSON)
+                    .statusCode(HttpStatus.OK_200)
+                .extract()
+                    .body()
+                    .jsonPath()
+                    .getMap(".");
+
+            assertThat(map)
+                .containsOnly(entry(source, ImmutableList.of(target)));
+        }
+
         @Test
         void getDomainMappingsEmptyMappingsAreFilteredOut() throws 
RecipientRewriteTableException {
             MappingSource nonEmptyMapping = 
MappingSource.fromDomain(Domain.of("abc.com"));
@@ -205,12 +229,14 @@ class DomainMappingsRoutesTest {
         void getDomainMappingsShouldFilterNonDomainMappings() throws 
RecipientRewriteTableException {
             MappingSource mappingSource = 
MappingSource.fromDomain(Domain.of("abc.com"));
             String address = "[email protected]";
+            Domain domain = Domain.of("domain.com");
 
             recipientRewriteTable.addAddressMapping(mappingSource, address);
             recipientRewriteTable.addForwardMapping(mappingSource, address);
             recipientRewriteTable.addErrorMapping(mappingSource, address);
             recipientRewriteTable.addGroupMapping(mappingSource, address);
             recipientRewriteTable.addRegexMapping(mappingSource, address);
+            recipientRewriteTable.addDomainAliasMapping(mappingSource, domain);
 
             when()
                 .get()


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to