You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/12/07 01:10:38 UTC

[15/19] james-project git commit: JAMES-2616 SpamAssassin learns james User not String

JAMES-2616 SpamAssassin learns james User not String


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/372930cd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/372930cd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/372930cd

Branch: refs/heads/master
Commit: 372930cd3f64cb9e65cac0d52527feee7656e6f1
Parents: 262e206
Author: tran tien duc <dt...@linagora.com>
Authored: Tue Dec 4 15:44:03 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Dec 7 07:52:51 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/spamassassin/SpamAssassin.java       |  5 +++--
 .../mailbox/spamassassin/SpamAssassinListener.java     |  7 +++----
 .../apache/james/transport/mailets/SpamAssassin.java   |  3 ++-
 third-party/spamassassin/pom.xml                       |  4 ++++
 .../apache/james/spamassassin/SpamAssassinInvoker.java | 13 +++++++------
 .../james/spamassassin/SpamAssassinInvokerTest.java    |  3 ++-
 6 files changed, 21 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassin.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassin.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassin.java
index b86fe28..a654666 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassin.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassin.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import javax.inject.Inject;
 
+import org.apache.james.core.User;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.spamassassin.SpamAssassinInvoker;
 import org.apache.james.util.Host;
@@ -40,7 +41,7 @@ public class SpamAssassin {
         this.spamAssassinConfiguration = spamAssassinConfiguration;
     }
 
-    public void learnSpam(List<InputStream> messages, String user) {
+    public void learnSpam(List<InputStream> messages, User user) {
         if (spamAssassinConfiguration.isEnable()) {
             Host host = spamAssassinConfiguration.getHost().get();
             SpamAssassinInvoker invoker = new SpamAssassinInvoker(metricFactory, host.getHostName(), host.getPort());
@@ -49,7 +50,7 @@ public class SpamAssassin {
         }
     }
 
-    public void learnHam(List<InputStream> messages, String user) {
+    public void learnHam(List<InputStream> messages, User user) {
         if (spamAssassinConfiguration.isEnable()) {
             Host host = spamAssassinConfiguration.getHost().get();
             SpamAssassinInvoker invoker = new SpamAssassinInvoker(metricFactory, host.getHostName(), host.getPort());

http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 9bf3657..74443c9 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -68,17 +68,16 @@ public class SpamAssassinListener implements SpamEventListener {
 
     @Override
     public void event(Event event) {
-        String username = event.getUser().asString();
         if (event instanceof MessageMoveEvent) {
             MessageMoveEvent messageMoveEvent = (MessageMoveEvent) event;
             if (isMessageMovedToSpamMailbox(messageMoveEvent)) {
                 LOGGER.debug("Spam event detected");
                 ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
-                spamAssassin.learnSpam(messages, username);
+                spamAssassin.learnSpam(messages, event.getUser());
             }
             if (isMessageMovedOutOfSpamMailbox(messageMoveEvent)) {
                 ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
-                spamAssassin.learnHam(messages, username);
+                spamAssassin.learnHam(messages, event.getUser());
             }
         }
         if (event instanceof EventFactory.AddedImpl) {
@@ -89,7 +88,7 @@ public class SpamAssassinListener implements SpamEventListener {
                     .stream()
                     .map(Throwing.function(MailboxMessage::getFullContent))
                     .collect(Guavate.toImmutableList());
-                spamAssassin.learnHam(contents, username);
+                spamAssassin.learnHam(contents, event.getUser());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
index f9f2634..adda4b7 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
@@ -26,6 +26,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.spamassassin.SpamAssassinInvoker;
 import org.apache.james.spamassassin.SpamAssassinResult;
@@ -106,7 +107,7 @@ public class SpamAssassin extends GenericMailet {
     }
 
     private void querySpamAssassin(Mail mail, MimeMessage message, SpamAssassinInvoker sa, MailAddress recipient) throws MessagingException, UsersRepositoryException {
-        SpamAssassinResult result = sa.scanMail(message, usersRepository.getUser(recipient));
+        SpamAssassinResult result = sa.scanMail(message, User.fromUsername(usersRepository.getUser(recipient)));
 
         // Add headers per recipient to mail object
         for (String key : result.getHeadersAsAttribute().keySet()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/third-party/spamassassin/pom.xml
----------------------------------------------------------------------
diff --git a/third-party/spamassassin/pom.xml b/third-party/spamassassin/pom.xml
index 3079b24..06a0576 100644
--- a/third-party/spamassassin/pom.xml
+++ b/third-party/spamassassin/pom.xml
@@ -31,6 +31,10 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java
----------------------------------------------------------------------
diff --git a/third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java b/third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java
index 1a97bf8..0a686b1 100644
--- a/third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java
+++ b/third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java
@@ -35,6 +35,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.james.core.User;
 import org.apache.james.metrics.api.MetricFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -92,12 +93,12 @@ public class SpamAssassinInvoker {
      * @throws MessagingException
      *             if an error on scanning is detected
      */
-    public SpamAssassinResult scanMail(MimeMessage message, String user) throws MessagingException {
+    public SpamAssassinResult scanMail(MimeMessage message, User user) throws MessagingException {
         return metricFactory.runPublishingTimerMetric(
             "spamAssassin-check",
             Throwing.supplier(
                 () -> scanMailWithAdditionalHeaders(message,
-                    "User: " + user))
+                    "User: " + user.asString()))
                 .sneakyThrow());
     }
 
@@ -187,7 +188,7 @@ public class SpamAssassinInvoker {
      * @throws MessagingException
      *             if an error occured during learning.
      */
-    public boolean learnAsSpam(InputStream message, String user) throws MessagingException {
+    public boolean learnAsSpam(InputStream message, User user) throws MessagingException {
         return metricFactory.runPublishingTimerMetric(
             "spamAssassin-spam-report",
             Throwing.supplier(
@@ -203,7 +204,7 @@ public class SpamAssassinInvoker {
      * @throws MessagingException
      *             if an error occured during learning.
      */
-    public boolean learnAsHam(InputStream message, String user) throws MessagingException {
+    public boolean learnAsHam(InputStream message, User user) throws MessagingException {
         return metricFactory.runPublishingTimerMetric(
             "spamAssassin-ham-report",
             Throwing.supplier(
@@ -211,7 +212,7 @@ public class SpamAssassinInvoker {
                 .sneakyThrow());
     }
 
-    private boolean reportMessageAs(InputStream message, String user, MessageClass messageClass) throws MessagingException {
+    private boolean reportMessageAs(InputStream message, User user, MessageClass messageClass) throws MessagingException {
         try (Socket socket = new Socket(spamdHost, spamdPort);
              OutputStream out = socket.getOutputStream();
              BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(out);
@@ -227,7 +228,7 @@ public class SpamAssassinInvoker {
             writer.write(CRLF);
             writer.write("Set: local, remote");
             writer.write(CRLF);
-            writer.write("User: " + user);
+            writer.write("User: " + user.asString());
             writer.write(CRLF);
             writer.write(CRLF);
             writer.flush();

http://git-wip-us.apache.org/repos/asf/james-project/blob/372930cd/third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java
----------------------------------------------------------------------
diff --git a/third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java b/third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java
index 473c6bf..f712572 100644
--- a/third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java
+++ b/third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java
@@ -25,6 +25,7 @@ import java.nio.charset.StandardCharsets;
 
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.User;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.spamassassin.SpamAssassinExtension.SpamAssassin;
 import org.apache.james.util.MimeMessageUtil;
@@ -35,7 +36,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
 @ExtendWith(SpamAssassinExtension.class)
 public class SpamAssassinInvokerTest {
 
-    public static final String USER = "any@james";
+    public static final User USER = User.fromUsername("any@james");
     private SpamAssassin spamAssassin;
     private SpamAssassinInvoker testee;
 


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