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 2022/09/06 20:05:44 UTC
[james-project] branch master updated: JAMES-3755 RspamdScanner should specify requiredProcessingState (#1174)
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
The following commit(s) were added to refs/heads/master by this push:
new 7e02f9b3b7 JAMES-3755 RspamdScanner should specify requiredProcessingState (#1174)
7e02f9b3b7 is described below
commit 7e02f9b3b7dcd8b5e220a2692b8a557cac1dde7b
Author: Benoit TELLIER <bt...@linagora.com>
AuthorDate: Wed Sep 7 03:05:38 2022 +0700
JAMES-3755 RspamdScanner should specify requiredProcessingState (#1174)
It should advertise virus, rejected processor when specified.
---
.../org/apache/james/rspamd/RspamdScanner.java | 11 ++++++
.../org/apache/james/rspamd/RspamdScannerTest.java | 41 +++++++++++++++++++++-
2 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdScanner.java b/third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdScanner.java
index 107dd2e84d..e465e67e5b 100644
--- a/third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdScanner.java
+++ b/third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdScanner.java
@@ -20,8 +20,10 @@
package org.apache.james.rspamd;
+import java.util.Collection;
import java.util.List;
import java.util.Optional;
+import java.util.stream.Stream;
import javax.inject.Inject;
import javax.mail.MessagingException;
@@ -34,6 +36,7 @@ import org.apache.mailet.AttributeName;
import org.apache.mailet.AttributeValue;
import org.apache.mailet.Mail;
import org.apache.mailet.PerRecipientHeaders;
+import org.apache.mailet.ProcessingState;
import org.apache.mailet.base.GenericMailet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -113,4 +116,12 @@ public class RspamdScanner extends GenericMailet {
+ " score=" + rspamdResult.getScore()
+ " requiredScore=" + rspamdResult.getRequiredScore())));
}
+
+ @Override
+ public Collection<ProcessingState> requiredProcessingState() {
+ return Stream.of(virusProcessor, rejectSpamProcessor)
+ .flatMap(Optional::stream)
+ .map(ProcessingState::new)
+ .collect(ImmutableList.toImmutableList());
+ }
}
diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdScannerTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdScannerTest.java
index 94c3ab17ad..5ebdd2c70c 100644
--- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdScannerTest.java
+++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdScannerTest.java
@@ -24,7 +24,6 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.io.InputStream;
import java.util.Collection;
import java.util.Optional;
@@ -41,6 +40,7 @@ import org.apache.mailet.Attribute;
import org.apache.mailet.AttributeValue;
import org.apache.mailet.Mail;
import org.apache.mailet.PerRecipientHeaders;
+import org.apache.mailet.ProcessingState;
import org.apache.mailet.base.test.FakeMail;
import org.apache.mailet.base.test.FakeMailetConfig;
import org.assertj.core.api.SoftAssertions;
@@ -70,6 +70,45 @@ class RspamdScannerTest {
mailet = new RspamdScanner(client);
}
+ @Test
+ void requiredProcessingStateShouldReturnEmptyByDefault() throws Exception {
+ mailet.init(FakeMailetConfig.builder()
+ .setProperty("rewriteSubject", "true")
+ .build());
+
+ assertThat(mailet.requiredProcessingState()).isEmpty();
+ }
+
+ @Test
+ void requiredProcessingStateShouldReturnVirusProcessor() throws Exception {
+ mailet.init(FakeMailetConfig.builder()
+ .setProperty("virusProcessor", "virus")
+ .build());
+
+ assertThat(mailet.requiredProcessingState()).containsOnly(new ProcessingState("virus"));
+ }
+
+ @Test
+ void requiredProcessingStateShouldReturnRejectedProcessor() throws Exception {
+ mailet.init(FakeMailetConfig.builder()
+ .setProperty("rejectSpamProcessor", "rejected")
+ .build());
+
+ assertThat(mailet.requiredProcessingState()).containsOnly(new ProcessingState("rejected"));
+ }
+
+ @Test
+ void requiredProcessingStateShouldReturnVirusAndRejectedProcessor() throws Exception {
+ mailet.init(FakeMailetConfig.builder()
+ .setProperty("virusProcessor", "virus")
+ .setProperty("rejectSpamProcessor", "rejected")
+ .build());
+
+ assertThat(mailet.requiredProcessingState())
+ .containsOnly(new ProcessingState("virus"),
+ new ProcessingState("rejected"));
+ }
+
@Test
void serviceShouldWriteSpamAttributeOnMail() throws Exception {
Mail mail = FakeMail.builder()
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org