JAMES-2214 Only one From address is supported: the user name
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/46e520e6 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/46e520e6 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/46e520e6 Branch: refs/heads/master Commit: 46e520e621b6c0ae4a9ec8733cf2eb34c066a71e Parents: 90f3fb7 Author: benwa <[email protected]> Authored: Mon Nov 13 16:23:17 2017 +0700 Committer: benwa <[email protected]> Committed: Wed Nov 15 18:05:45 2017 +0700 ---------------------------------------------------------------------- .../methods/integration/SetMessagesMethodTest.java | 2 +- .../methods/MailboxSendingNotAllowedException.java | 12 +++++------- .../org/apache/james/jmap/methods/MessageSender.java | 14 +++++--------- .../jmap/methods/SetMessagesCreationProcessor.java | 5 ++--- 4 files changed, 13 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/46e520e6/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 97fbf15..ad99100 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -2290,7 +2290,7 @@ public abstract class SetMessagesMethodTest { .body(ARGUMENTS + ".notCreated[\""+messageCreationId+"\"].type", equalTo("invalidProperties")) .body(ARGUMENTS + ".notCreated[\""+messageCreationId+"\"].properties", hasSize(1)) .body(ARGUMENTS + ".notCreated[\""+messageCreationId+"\"].properties", contains("from")) - .body(ARGUMENTS + ".notCreated[\""+messageCreationId+"\"].description", endsWith("Invalid 'from' field. Must be one of [email protected]")) + .body(ARGUMENTS + ".notCreated[\""+messageCreationId+"\"].description", endsWith("Invalid 'from' field. Must be [email protected]")) .body(ARGUMENTS + ".created", aMapWithSize(0)); } http://git-wip-us.apache.org/repos/asf/james-project/blob/46e520e6/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MailboxSendingNotAllowedException.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MailboxSendingNotAllowedException.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MailboxSendingNotAllowedException.java index 49d9141..83d36c8 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MailboxSendingNotAllowedException.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MailboxSendingNotAllowedException.java @@ -19,20 +19,18 @@ package org.apache.james.jmap.methods; -import java.util.Collection; - import org.apache.james.mailbox.exception.MailboxException; public class MailboxSendingNotAllowedException extends MailboxException { - private Collection<String> allowedFroms; + private String allowedFrom; - public MailboxSendingNotAllowedException(Collection<String> allowedFroms) { + public MailboxSendingNotAllowedException(String allowedFrom) { super(); - this.allowedFroms = allowedFroms; + this.allowedFrom = allowedFrom; } - public Collection<String> getAllowedFroms() { - return allowedFroms; + public String getAllowedFrom() { + return allowedFrom; } } http://git-wip-us.apache.org/repos/asf/james-project/blob/46e520e6/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java index 98e41d2..ab360ea 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MessageSender.java @@ -20,12 +20,10 @@ package org.apache.james.jmap.methods; import java.io.IOException; -import java.util.List; import javax.inject.Inject; import javax.mail.MessagingException; -import org.apache.james.jmap.model.CreationMessageId; import org.apache.james.jmap.model.Message; import org.apache.james.jmap.model.MessageFactory; import org.apache.james.jmap.send.MailFactory; @@ -36,8 +34,6 @@ import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.exception.MailboxException; import org.apache.mailet.Mail; -import com.google.common.collect.ImmutableList; - public class MessageSender { private final MailSpool mailSpool; private final MailFactory mailFactory; @@ -70,16 +66,16 @@ public class MessageSender { } private void validateUserIsInSenders(Message message, MailboxSession session) throws MailboxSendingNotAllowedException { - List<String> allowedSenders = ImmutableList.of(session.getUser().getUserName()); - if (!isAllowedFromAddress(message, allowedSenders)) { - throw new MailboxSendingNotAllowedException(allowedSenders); + String allowedSender = session.getUser().getUserName(); + if (!isAllowedFromAddress(message, allowedSender)) { + throw new MailboxSendingNotAllowedException(allowedSender); } } - private boolean isAllowedFromAddress(Message message, List<String> allowedFromMailAddresses) { + private boolean isAllowedFromAddress(Message message, String allowedFromMailAddress) { return message.getFrom() .map(draftEmailer -> draftEmailer.getEmail() - .map(allowedFromMailAddresses::contains) + .map(allowedFromMailAddress::equals) .orElse(false)) .orElse(false); } http://git-wip-us.apache.org/repos/asf/james-project/blob/46e520e6/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java index ac12072..19dc981 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java @@ -63,7 +63,6 @@ import org.slf4j.LoggerFactory; import com.github.fge.lambdas.Throwing; import com.github.fge.lambdas.functions.FunctionChainer; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Joiner; import com.google.common.base.Splitter; @@ -117,8 +116,8 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor { SetError.builder() .type("invalidProperties") .properties(MessageProperty.from) - .description("Invalid 'from' field. Must be one of " + - Joiner.on(", ").join(e.getAllowedFroms())) + .description("Invalid 'from' field. Must be " + + e.getAllowedFrom()) .build()); } catch (InvalidDraftKeywordsException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
