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

commit b3fa7a3815843caa8eb1520a6b1f77a7d2cea410
Author: Rene Cordier <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to