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]
