You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/05/11 04:38:12 UTC

[james-project] 02/02: JAMES-3579 reject verifyIdentity param to true when authRequired is false in SMTP server configuration

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

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

commit cc57eadb2d2dce622f42166a330353b028d1f1b3
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Tue May 11 11:37:36 2021 +0700

    JAMES-3579 reject verifyIdentity param to true when authRequired is false in SMTP server configuration
---
 .../java/org/apache/james/smtpserver/netty/SMTPServer.java |  6 +++++-
 .../java/org/apache/james/smtpserver/SMTPServerTest.java   | 14 +++++++++++++-
 .../org/apache/james/smtpserver/SMTPTestConfiguration.java |  4 ++++
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
index e01b0a0..0dfa355 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
@@ -183,8 +183,12 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
 
             addressBracketsEnforcement = configuration.getBoolean("addressBracketsEnforcement", true);
 
-            verifyIdentity = configuration.getBoolean("verifyIdentity", true);
+            verifyIdentity = configuration.getBoolean("verifyIdentity", false);
 
+            if (authRequired == AUTH_DISABLED && verifyIdentity) {
+                throw new ConfigurationException(
+                    "SMTP configuration: 'verifyIdentity' can't be set to true if 'authRequired' is set to false.");
+            }
         }
     }
 
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 953068b..acf718f 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -20,6 +20,7 @@ package org.apache.james.smtpserver;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Fail.fail;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -42,6 +43,7 @@ import java.util.List;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.configuration2.BaseHierarchicalConfiguration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.commons.net.ProtocolCommandEvent;
 import org.apache.commons.net.ProtocolCommandListener;
 import org.apache.commons.net.smtp.SMTPClient;
@@ -371,7 +373,9 @@ public class SMTPServerTest {
 
     @AfterEach
     public void tearDown() {
-        smtpServer.destroy();
+        if (smtpServer.isStarted()) {
+            smtpServer.destroy();
+        }
         hashedWheelTimer.stop();
     }
 
@@ -2059,4 +2063,12 @@ public class SMTPServerTest {
         out.close();
         client.close();
     }
+
+    @Test
+    public void testRejectVerifyIdentityWhenAuthRequiredIsFalse() {
+        smtpConfiguration.setVerifyIdentity();
+
+        assertThatThrownBy(() -> init(smtpConfiguration))
+            .isInstanceOf(ConfigurationException.class);
+    }
 }
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
index 9bde7e9..ba8f589 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
@@ -108,6 +108,10 @@ public class SMTPTestConfiguration extends BaseHierarchicalConfiguration {
         startTLS = true;
     }
 
+    public void setVerifyIdentity() {
+        verifyIdentity = true;
+    }
+
     public void init() {
 
         addProperty("[@enabled]", true);

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