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

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

commit ee0c957dc583b854b630de57eafc9b90047b645d
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Tue Oct 22 14:27:48 2024 +0200

    JAMES-2128 Ensure creating #user is forbidden
---
 .../src/main/java/org/apache/james/mailbox/model/MailboxPath.java   | 6 ++++--
 .../src/main/resources/org/apache/james/imap/scripts/Create.test    | 3 +++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index d43641de5d..24abfdad66 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -154,7 +154,9 @@ public class MailboxPath {
     }
 
     public boolean belongsTo(MailboxSession mailboxSession) {
-        return user.equals(mailboxSession.getUser());
+        return Optional.ofNullable(user)
+            .map(mailboxSession.getUser()::equals)
+            .orElse(false);
     }
 
     public MailboxPath child(String childName, char delimiter) {
@@ -255,7 +257,7 @@ public class MailboxPath {
     }
 
     public String asString() {
-        return namespace + ":" + user.asString() + ":" + name;
+        return namespace + ":" + 
Optional.ofNullable(user).map(Username::asString).orElse("") + ":" + name;
     }
 
     public String asEscapedString() {
diff --git 
a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Create.test
 
b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Create.test
index 4f47c8b1fb..438e4d890f 100644
--- 
a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Create.test
+++ 
b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Create.test
@@ -73,6 +73,9 @@ S: \* LIST \(\\HasChildren\) "." "one"
 S: \* LIST \(\\HasNoChildren\) "." "one.two"
 S: 21 OK LIST completed.
 
+C: 22 CREATE #user
+S: 22 NO CREATE processing failed.
+
 # Cleanup
 C: a1 DELETE test1.subfolder1
 S: a1 OK DELETE completed.


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

Reply via email to