You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2024/09/20 06:47:57 UTC

(james-project) 07/07: JAMES-3945 changed MailboxACLResolver::resolveRights signature from untyped String resourceOwner to stronger type Username resourceOwner

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 0ecc08754b0330a49a11e29df31c7c9f08b4bcfc
Author: Florent AZAVANT <fa...@linagora.com>
AuthorDate: Wed Sep 18 14:36:11 2024 +0200

    JAMES-3945 changed MailboxACLResolver::resolveRights signature from untyped String resourceOwner to stronger type Username resourceOwner
---
 .../james/mailbox/acl/MailboxACLResolver.java      |   4 +-
 .../james/mailbox/acl/UnionMailboxACLResolver.java |  18 +-
 .../mailbox/acl/UnionMailboxACLResolverTest.java   | 242 ++++++++++-----------
 .../james/mailbox/store/StoreRightManager.java     |   6 +-
 .../james/transport/mailets/SubAddressing.java     |   4 +-
 5 files changed, 137 insertions(+), 137 deletions(-)

diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
index 4e83a5d32a..4811340fe1 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
@@ -67,7 +67,7 @@ public interface MailboxACLResolver {
      *         explicitly for the given identifier. Further elements are groups
      *         of rights which can be set for the given identifier and resource.
      */
-    List<MailboxACL.Rfc4314Rights> listRights(MailboxACL.EntryKey key, String resourceOwner) throws UnsupportedRightException;
+    List<MailboxACL.Rfc4314Rights> listRights(MailboxACL.EntryKey key, Username resourceOwner) throws UnsupportedRightException;
 
     /**
      * Computes the rights which apply to the given user and resource. Global
@@ -85,6 +85,6 @@ public interface MailboxACLResolver {
      *            holder in the resourceACL.
      * @return the rights applicable for the given user and resource.
      */
-    MailboxACL.Rfc4314Rights resolveRights(Username requestUser, MailboxACL resourceACL, String resourceOwner) throws UnsupportedRightException;
+    MailboxACL.Rfc4314Rights resolveRights(Username requestUser, MailboxACL resourceACL, Username resourceOwner) throws UnsupportedRightException;
 
 }
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
index c04e84f9bd..23119cbbdd 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
@@ -45,7 +45,7 @@ import com.google.common.collect.ImmutableList;
  * applicable identifiers. Inspired by RFC 4314 Section 2.
  * 
  * In
- * {@link UnionMailboxACLResolver#resolveRights(Username, MailboxACL, String)}
+ * {@link MailboxACLResolver#resolveRights(Username, MailboxACL, Username)}
  * all applicable negative and non-negative rights are union-ed separately and
  * the result is computed afterwards with
  * <code>nonNegativeUnion.except(negativeUnion)</code>.
@@ -113,20 +113,20 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
      * (1) Calls from
      * {@link #hasRight(String, Right, MailboxACL, String)}
      * and
-     * {@link #resolveRights(Username, MailboxACL, String)}
+     * {@link MailboxACLResolver#resolveRights(Username, MailboxACL, Username)}
      * in which the {@code queryKey} is a {@link NameType#user}.
      * 
      * (2) Calls from
-     * {@link #listRights(EntryKey, String)}
+     * {@link MailboxACLResolver#listRights(EntryKey, Username)}
      * where {@code queryKey} can be anything including {@link NameType#user},
      * {@link NameType#group} and all {@link NameType#special} identifiers.
      * 
      * Clearly the set of cases which this method has to handle in (1) is a
      * proper subset of the cases handled in (2). See the javadoc on
-     * {@link #listRights(EntryKey, String)}
+     * {@link MailboxACLResolver#listRights(EntryKey, Username)}
      * for more details.
      */
-    protected static boolean applies(EntryKey aclKey, EntryKey queryKey, String resourceOwner) {
+    protected static boolean applies(EntryKey aclKey, EntryKey queryKey, Username resourceOwner) {
         final String aclKeyName = aclKey.getName();
         final NameType aclKeyNameType = aclKey.getNameType();
         if (SpecialName.anybody.name().equals(aclKeyName)) {
@@ -143,7 +143,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
                         /* non-null query user is viewed as authenticated */
                         return true;
                     } else if (SpecialName.owner.name().equals(aclKeyName)) {
-                        return queryUserOrGroupName.equals(resourceOwner);
+                        return queryUserOrGroupName.equals(resourceOwner.asString());
                     } else {
                         /* should not happen unless the parent if is changed */
                         throw new IllegalStateException("Unexpected " + SpecialName.class.getName() + "." + aclKeyName);
@@ -264,7 +264,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
      * authenticated.
      */
     @Override
-    public List<Rfc4314Rights> listRights(EntryKey queryKey, String resourceOwner) throws UnsupportedRightException {
+    public List<Rfc4314Rights> listRights(EntryKey queryKey, Username resourceOwner) throws UnsupportedRightException {
         Rfc4314Rights[] positiveNegativePair = { MailboxACL.NO_RIGHTS, MailboxACL.NO_RIGHTS };
 
         resolveRights(queryKey, userGlobalACL.getEntries(), resourceOwner, positiveNegativePair);
@@ -288,7 +288,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
     }
 
     @Override
-    public Rfc4314Rights resolveRights(Username requestUser, MailboxACL resourceACL, String resourceOwner) throws UnsupportedRightException {
+    public Rfc4314Rights resolveRights(Username requestUser, MailboxACL resourceACL, Username resourceOwner) throws UnsupportedRightException {
         Rfc4314Rights[] positiveNegativePair = { MailboxACL.NO_RIGHTS, MailboxACL.NO_RIGHTS };
         final EntryKey queryKey = requestUser == null ? null : EntryKey.createUserEntryKey(requestUser);
         resolveRights(queryKey, userGlobalACL.getEntries(), resourceOwner, positiveNegativePair);
@@ -303,7 +303,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
     /**
      * What needs to be done for both global ACL and the given mailboxe's ACL.
      */
-    private void resolveRights(EntryKey queryKey, Map<EntryKey, Rfc4314Rights> entries, String resourceOwner, Rfc4314Rights[] positiveNegativePair)
+    private void resolveRights(EntryKey queryKey, Map<EntryKey, Rfc4314Rights> entries, Username resourceOwner, Rfc4314Rights[] positiveNegativePair)
             throws UnsupportedRightException {
         if (entries != null) {
             for (Entry<EntryKey, Rfc4314Rights> entry : entries.entrySet()) {
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
index 2432613297..eeb9478d9a 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
@@ -80,186 +80,186 @@ class UnionMailboxACLResolverTest {
     @Test
     void testAppliesNullUser() throws UnsupportedRightException {
 
-        assertThat(UnionMailboxACLResolver.applies(user1Key, null, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(user2Key, null, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, null, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, null, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, null, USER_1.asString())).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(user1Key, null, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(user2Key, null, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, null, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, null, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, null, USER_1)).isFalse();
     }
 
     @Test
     void testAppliesUser() throws UnsupportedRightException {
         /* requester is the resource owner */
-        assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, USER_1.asString())).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, USER_1)).isTrue();
 
         /* requester is not the resource user */
-        assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, USER_2.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, USER_2.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, USER_2.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, USER_2.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, USER_2.asString())).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, USER_2)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, USER_2)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, USER_2)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, USER_2)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, USER_2)).isFalse();
 
         /* owner query */
-        assertThat(UnionMailboxACLResolver.applies(user1Key, MailboxACL.OWNER_KEY, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(user2Key, MailboxACL.OWNER_KEY, USER_1.asString())).isFalse();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, MailboxACL.OWNER_KEY, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, MailboxACL.OWNER_KEY, USER_1.asString())).isTrue();
-        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, MailboxACL.OWNER_KEY, USER_1.asString())).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(user1Key, MailboxACL.OWNER_KEY, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(user2Key, MailboxACL.OWNER_KEY, USER_1)).isFalse();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, MailboxACL.OWNER_KEY, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, MailboxACL.OWNER_KEY, USER_1)).isTrue();
+        assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, MailboxACL.OWNER_KEY, USER_1)).isTrue();
     }
 
     @Test
     void testResolveRightsNullUser() throws UnsupportedRightException {
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, user1Read, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, user1Read, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, user1ReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, user1Read, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, user1ReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(null, user1Read, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            ownerFullGlobal.resolveRights(null, user1ReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(null, user1Read, USER_1.asString())
+            noGlobals.resolveRights(null, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            noGlobals.resolveRights(null, user1ReadNegative, USER_1.asString())
+            noGlobals.resolveRights(null, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, anybodyRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, anybodyReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, anybodyRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, anybodyReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(null, anybodyRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(null, anybodyReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(null, anybodyRead, USER_1.asString())
+            noGlobals.resolveRights(null, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(null, anybodyReadNegative, USER_1.asString())
+            noGlobals.resolveRights(null, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, authenticatedRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, authenticatedReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, authenticatedRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, authenticatedReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(null, authenticatedRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            ownerFullGlobal.resolveRights(null, authenticatedReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(null, authenticatedRead, USER_1.asString())
+            noGlobals.resolveRights(null, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            noGlobals.resolveRights(null, authenticatedReadNegative, USER_1.asString())
+            noGlobals.resolveRights(null, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, ownerRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, ownerReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(null, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, ownerRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, ownerReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(null, ownerRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            ownerFullGlobal.resolveRights(null, ownerReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(null, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(null, ownerRead, USER_1.asString())
+            noGlobals.resolveRights(null, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            noGlobals.resolveRights(null, ownerReadNegative, USER_1.asString())
+            noGlobals.resolveRights(null, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
@@ -268,19 +268,19 @@ class UnionMailboxACLResolverTest {
     @Test
     void testResolveRightsNullUserGlobals() throws UnsupportedRightException {
         assertThat(
-            anyoneReadListGlobal.resolveRights(null, user1Read, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(null, user1Read, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(null, MailboxACL.EMPTY, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(null, MailboxACL.EMPTY, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            ownerFullGlobal.resolveRights(null, MailboxACL.EMPTY, USER_2.asString())
+            ownerFullGlobal.resolveRights(null, MailboxACL.EMPTY, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            noGlobals.resolveRights(null, MailboxACL.EMPTY, USER_2.asString())
+            noGlobals.resolveRights(null, MailboxACL.EMPTY, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
     }
@@ -290,146 +290,146 @@ class UnionMailboxACLResolverTest {
     void testResolveRightsUserSelfOwner() throws UnsupportedRightException {
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, user1Read, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, user1ReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1Read, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1ReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, user1Read, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, user1ReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, user1Read, USER_1.asString())
+            noGlobals.resolveRights(USER_1, user1Read, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, user1ReadNegative, USER_1.asString())
+            noGlobals.resolveRights(USER_1, user1ReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, anybodyRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, anybodyRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, anybodyRead, USER_1.asString())
+            noGlobals.resolveRights(USER_1, anybodyRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, anybodyReadNegative, USER_1.asString())
+            noGlobals.resolveRights(USER_1, anybodyReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, authenticatedRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, authenticatedRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, authenticatedRead, USER_1.asString())
+            noGlobals.resolveRights(USER_1, authenticatedRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, authenticatedReadNegative, USER_1.asString())
+            noGlobals.resolveRights(USER_1, authenticatedReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, ownerRead, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, ownerReadNegative, USER_1.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerRead, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerReadNegative, USER_1.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, ownerRead, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, ownerReadNegative, USER_1.asString())
+            ownerFullGlobal.resolveRights(USER_1, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, ownerRead, USER_1.asString())
+            noGlobals.resolveRights(USER_1, ownerRead, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, ownerReadNegative, USER_1.asString())
+            noGlobals.resolveRights(USER_1, ownerReadNegative, USER_1)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
@@ -440,146 +440,146 @@ class UnionMailboxACLResolverTest {
     void testResolveRightsUserNotOwner() throws UnsupportedRightException {
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, user1Read, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, user1Read, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, user1ReadNegative, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, user1ReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1Read, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1Read, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1ReadNegative, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, user1ReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, user1Read, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, user1Read, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, user1ReadNegative, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, user1ReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, user1Read, USER_2.asString())
+            noGlobals.resolveRights(USER_1, user1Read, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, user1ReadNegative, USER_2.asString())
+            noGlobals.resolveRights(USER_1, user1ReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, anybodyRead, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, anybodyRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyRead, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, anybodyRead, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, anybodyRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, anybodyReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, anybodyRead, USER_2.asString())
+            noGlobals.resolveRights(USER_1, anybodyRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, anybodyReadNegative, USER_2.asString())
+            noGlobals.resolveRights(USER_1, anybodyReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, authenticatedRead, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, authenticatedRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedRead, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, authenticatedRead, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, authenticatedRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, authenticatedReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, authenticatedRead, USER_2.asString())
+            noGlobals.resolveRights(USER_1, authenticatedRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            noGlobals.resolveRights(USER_1, authenticatedReadNegative, USER_2.asString())
+            noGlobals.resolveRights(USER_1, authenticatedReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, ownerRead, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, ownerRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            anyoneReadListGlobal.resolveRights(USER_1, ownerReadNegative, USER_2.asString())
+            anyoneReadListGlobal.resolveRights(USER_1, ownerReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerRead, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
         assertThat(
-            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerReadNegative, USER_2.asString())
+            authenticatedReadListWriteGlobal.resolveRights(USER_1, ownerReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isTrue();
 
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, ownerRead, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, ownerRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            ownerFullGlobal.resolveRights(USER_1, ownerReadNegative, USER_2.asString())
+            ownerFullGlobal.resolveRights(USER_1, ownerReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
 
         assertThat(
-            noGlobals.resolveRights(USER_1, ownerRead, USER_2.asString())
+            noGlobals.resolveRights(USER_1, ownerRead, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
         assertThat(
-            noGlobals.resolveRights(USER_1, ownerReadNegative, USER_2.asString())
+            noGlobals.resolveRights(USER_1, ownerReadNegative, USER_2)
                 .contains(MailboxACL.Right.Read))
             .isFalse();
     }
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
index 115981822f..47faddf9a0 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
@@ -130,7 +130,7 @@ public class StoreRightManager implements RightManager {
                 aclResolver.resolveRights(
                     username,
                     mailbox.getACL(),
-                    mailbox.getUser().asString()))
+                    mailbox.getUser()))
                 .sneakyThrow())
             .orElse(MailboxACL.NO_RIGHTS);
     }
@@ -142,13 +142,13 @@ public class StoreRightManager implements RightManager {
             .orElseThrow(() -> new MailboxNotFoundException(mailboxPath));
 
         return aclResolver.listRights(key,
-            mailbox.getUser().asString());
+            mailbox.getUser());
     }
 
     @Override
     public List<Rfc4314Rights> listRights(Mailbox mailbox, EntryKey key, MailboxSession session) throws MailboxException {
         return aclResolver.listRights(key,
-            mailbox.getUser().asString());
+            mailbox.getUser());
     }
 
     @Override
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SubAddressing.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SubAddressing.java
index fa42f2820d..41c4e1119f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SubAddressing.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SubAddressing.java
@@ -114,11 +114,11 @@ public class SubAddressing extends GenericMailet {
             .getACL();
     }
 
-    private boolean resolvePostRight(MailboxACL acl, MaybeSender maybeSender, MailAddress recipient) throws UnsupportedRightException {
+    private boolean resolvePostRight(MailboxACL acl, MaybeSender maybeSender, MailAddress recipient) throws UnsupportedRightException, UsersRepositoryException {
         return new UnionMailboxACLResolver().resolveRights(
                 maybeSender.asOptional()
                     .map(Throwing.function(usersRepository::getUsername))
-                    .orElse(NO_ASSOCIATED_USER), acl, recipient.asString())
+                    .orElse(NO_ASSOCIATED_USER), acl, usersRepository.getUsername(recipient))
             .contains(MailboxACL.Right.Post);
     }
 }


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