This is an automated email from the ASF dual-hosted git repository.
Arsnael 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 ad5725004c [FIX] Cross domain RRT was listing non existing addresses
when cross domain
ad5725004c is described below
commit ad5725004c624556859f5f333f420b1631933c43
Author: Benoit TELLIER <[email protected]>
AuthorDate: Fri Jun 26 22:33:28 2026 +0200
[FIX] Cross domain RRT was listing non existing addresses when cross domain
---
.../apache/james/rrt/lib/AliasReverseResolverContract.java | 12 ++++++++++--
.../java/org/apache/james/rrt/lib/CanSendFromContract.java | 12 ++++++++++--
.../org/apache/james/rrt/lib/AliasReverseResolverImpl.java | 2 +-
3 files changed, 21 insertions(+), 5 deletions(-)
diff --git
a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverContract.java
b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverContract.java
index 35042563b2..8bd9209e8e 100644
---
a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverContract.java
+++
b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverContract.java
@@ -114,10 +114,18 @@ public interface AliasReverseResolverContract {
redirectDomain(OTHER_DOMAIN).to(DOMAIN);
redirectUser(userAliasOtherDomain).to(USER);
- Username userAliasMainDomain = USER_ALIAS.withOtherDomain(DOMAIN);
Username userOtherDomain = USER.withOtherDomain(OTHER_DOMAIN);
assertThat(Flux.from(aliasReverseResolver().listAddresses(USER)).toStream())
- .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress(), userAliasMainDomain.asMailAddress(),
userOtherDomain.asMailAddress());
+ .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress(), userOtherDomain.asMailAddress());
+ }
+
+ @Test
+ default void
listAddressesShouldNotStampAliasLocalPartOntoUserDomainWhenNoDomainAlias()
throws Exception {
+ Username userAliasOtherDomain =
USER_ALIAS.withOtherDomain(OTHER_DOMAIN);
+ redirectUser(userAliasOtherDomain).to(USER);
+
+
assertThat(Flux.from(aliasReverseResolver().listAddresses(USER)).toStream())
+ .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress());
}
@Test
diff --git
a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/CanSendFromContract.java
b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/CanSendFromContract.java
index 1127efd7d8..c37d5bcf30 100644
---
a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/CanSendFromContract.java
+++
b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/CanSendFromContract.java
@@ -221,10 +221,18 @@ public interface CanSendFromContract {
redirectDomain(OTHER_DOMAIN).to(DOMAIN).asAlias();
redirectUser(userAliasOtherDomain).to(USER);
- Username userAliasMainDomain = USER_ALIAS.withOtherDomain(DOMAIN);
Username userOtherDomain = USER.withOtherDomain(OTHER_DOMAIN);
assertThat(Flux.from(canSendFrom().allValidFromAddressesForUser(USER)).toStream())
- .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress(), userAliasMainDomain.asMailAddress(),
userOtherDomain.asMailAddress());
+ .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress(), userOtherDomain.asMailAddress());
+ }
+
+ @Test
+ default void
allValidFromAddressesShouldNotStampAliasLocalPartOntoUserDomainWhenNoDomainAlias()
throws Exception {
+ Username userAliasOtherDomain =
USER_ALIAS.withOtherDomain(OTHER_DOMAIN);
+ redirectUser(userAliasOtherDomain).to(USER);
+
+
assertThat(Flux.from(canSendFrom().allValidFromAddressesForUser(USER)).toStream())
+ .containsExactlyInAnyOrder(USER.asMailAddress(),
userAliasOtherDomain.asMailAddress());
}
@Test
diff --git
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AliasReverseResolverImpl.java
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AliasReverseResolverImpl.java
index 6829097b7c..d9990f82af 100644
---
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AliasReverseResolverImpl.java
+++
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AliasReverseResolverImpl.java
@@ -52,7 +52,7 @@ public class AliasReverseResolverImpl implements
AliasReverseResolver {
CanSendFromImpl.DomainFetcher domains = domainFetcher();
return relatedAliases(user)
- .flatMap(allowedUser -> user.getDomainPart()
+ .flatMap(allowedUser -> allowedUser.getDomainPart()
.map(domain -> Flux.concat(
Flux.just(allowedUser),
domains.fetch(domain).map(allowedUser::withOtherDomain)))
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]