JAMES-2352 Domain of a MailAddress can not be null
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2aefc065 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2aefc065 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2aefc065 Branch: refs/heads/master Commit: 2aefc065eeb31fbdff93cbd223d93862459d2ef1 Parents: 3306f18 Author: benwa <btell...@linagora.com> Authored: Wed Mar 21 10:55:05 2018 +0700 Committer: benwa <btell...@linagora.com> Committed: Tue Mar 27 15:14:05 2018 +0700 ---------------------------------------------------------------------- .../mailets/managesieve/ManageSieveMailet.java | 6 ++--- .../managesieve/ManageSieveMailetTestCase.java | 27 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/2aefc065/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java index cd9bd4e..ba2f23f 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java @@ -29,7 +29,6 @@ import java.util.Scanner; import javax.inject.Inject; import javax.mail.MessagingException; -import org.apache.james.core.Domain; import org.apache.james.managesieve.api.Session; import org.apache.james.managesieve.api.SieveParser; import org.apache.james.managesieve.core.CoreProcessor; @@ -123,7 +122,7 @@ public class ManageSieveMailet extends GenericMailet implements MessageToCoreToM @Override public void service(Mail mail) throws MessagingException { // Sanity checks - if (mail.getSender() == null) { + if (mail.getSender() == null || mail.getSender().isNullSender()) { LOGGER.error("Sender is null"); return; } @@ -139,8 +138,7 @@ public class ManageSieveMailet extends GenericMailet implements MessageToCoreToM } else { session.setState(Session.State.UNAUTHENTICATED); } - Domain domain = mail.getSender().getDomain() == null ? Domain.LOCALHOST : mail.getSender().getDomain(); - session.setUser(mail.getSender().getLocalPart() + '@' + domain.name()); + session.setUser(mail.getSender().asString()); getMailetContext().sendMail(mail.getRecipients().iterator().next(), Lists.newArrayList(mail.getSender()),transcoder.execute(session, mail.getMessage())); mail.setState(Mail.GHOST); http://git-wip-us.apache.org/repos/asf/james-project/blob/2aefc065/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java index f0eb7c3..0ca9a75 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java @@ -459,6 +459,33 @@ public class ManageSieveMailetTestCase { ensureResponse("Re: SETACTIVE", "NO \"Missing argument: script name\""); } + @Test + public final void manageSieveMailetShouldIgnoreNullSender() throws Exception { + MimeMessage message = prepareMimeMessage("SETACTIVE"); + Mail mail = FakeMail.builder() + .mimeMessage(message) + .sender(MailAddress.nullSender()) + .recipient(SIEVE_LOCALHOST) + .build(); + + mailet.service(mail); + + assertThat(fakeMailContext.getSentMails()).isEmpty(); + } + + @Test + public final void manageSieveMailetShouldIgnoreMailWhenNoSender() throws Exception { + MimeMessage message = prepareMimeMessage("SETACTIVE"); + Mail mail = FakeMail.builder() + .mimeMessage(message) + .recipient(SIEVE_LOCALHOST) + .build(); + + mailet.service(mail); + + assertThat(fakeMailContext.getSentMails()).isEmpty(); + } + private void initializeMailet() throws MessagingException { mailet = new ManageSieveMailet(); mailet.setSieveParser(sieveParser); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org