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]