This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 1135de3ce0d1de7da5ffae657df2ddcfd7075ffa Author: Benoit Tellier <[email protected]> AuthorDate: Mon Dec 6 17:39:09 2021 +0700 JAMES-3680 smtpserver.xml: avoid the implicit default wildcard for authorizedAddresses When authRequired = false all addresses were accepted. We should rather require this configuration to be explicit. --- .../docs/modules/ROOT/pages/configure/smtp.adoc | 3 +- .../src/test/resources/smtpserver.xml | 1 + ...ectResolutionRemoteDeliveryIntegrationTest.java | 10 +++- .../GatewayRemoteDeliveryIntegrationTest.java | 13 +++++ .../org/apache/james/mailets/MailetErrorsTest.java | 55 ++++++++++++++++++++++ .../mailets/RemoteDeliveryDKIMIntegrationTest.java | 7 +++ .../mailets/RemoteDeliveryErrorHandlingTest.java | 3 ++ .../james/mailets/RemoteDeliveryErrorTest.java | 3 ++ .../RemoteDeliveryForwardIntegrationTest.java | 3 ++ .../james/mailets/RemoteDeliveryOnSuccessTest.java | 3 ++ .../james/smtp/dsn/DSNLocalIntegrationTest.java | 2 + .../org/apache/james/smtp/dsn/DSNRelayTest.java | 3 +- .../james/smtp/dsn/DSNRemoteIntegrationTest.java | 3 +- .../apache/james/smtpserver/netty/SMTPServer.java | 22 +-------- src/site/xdoc/server/config-smtp-lmtp.xml | 3 +- 15 files changed, 106 insertions(+), 28 deletions(-) diff --git a/server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc b/server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc index 4de5611..8222b85 100644 --- a/server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc +++ b/server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc @@ -74,8 +74,7 @@ regardless of this option. | auth.announce | This is an optional tag. Possible values are: -* never: Don't announce auth. If absent, *authorizedAddresses* are set to a wilcard to accept all remote hosts. -This is the default behaviour. +* never: Don't announce auth. * always: always announce AUTH capability to clients. diff --git a/server/apps/distributed-app/src/test/resources/smtpserver.xml b/server/apps/distributed-app/src/test/resources/smtpserver.xml index a4e1bcf..aa98c05 100644 --- a/server/apps/distributed-app/src/test/resources/smtpserver.xml +++ b/server/apps/distributed-app/src/test/resources/smtpserver.xml @@ -36,6 +36,7 @@ <auth> <announce>never</announce> </auth> + <authorizedAddresses>0.0.0.0/0.0.0.0</authorizedAddresses> <verifyIdentity>false</verifyIdentity> <maxmessagesize>0</maxmessagesize> <addressBracketsEnforcement>true</addressBracketsEnforcement> diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DirectResolutionRemoteDeliveryIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DirectResolutionRemoteDeliveryIntegrationTest.java index 47fae4c..6def318 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DirectResolutionRemoteDeliveryIntegrationTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DirectResolutionRemoteDeliveryIntegrationTest.java @@ -100,7 +100,7 @@ public class DirectResolutionRemoteDeliveryIntegrationTest { .putProcessor(CommonProcessors.bounces())) .withSmtpConfiguration(SmtpConfiguration.builder() .doNotVerifyIdentity() - .build()) + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -128,6 +128,8 @@ public class DirectResolutionRemoteDeliveryIntegrationTest { .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(directResolutionTransport()) .putProcessor(CommonProcessors.bounces())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -154,6 +156,8 @@ public class DirectResolutionRemoteDeliveryIntegrationTest { .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(transport()) .putProcessor(CommonProcessors.bounces())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -182,6 +186,8 @@ public class DirectResolutionRemoteDeliveryIntegrationTest { .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(transport()) .putProcessor(CommonProcessors.bounces())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -219,6 +225,8 @@ public class DirectResolutionRemoteDeliveryIntegrationTest { .addMailet(MailetConfiguration.remoteDeliveryBuilder() .matcher(All.class))) .putProcessor(CommonProcessors.bounces())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java index 1fe9554..2c70265 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java @@ -91,6 +91,7 @@ class GatewayRemoteDeliveryIntegrationTest { .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) .withSmtpConfiguration(SmtpConfiguration.builder() .doNotVerifyIdentity() + .withAutorizedAddresses("0.0.0.0/0.0.0.0") .build()) .build(temporaryFolder); jamesServer.start(); @@ -113,6 +114,8 @@ class GatewayRemoteDeliveryIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -134,6 +137,8 @@ class GatewayRemoteDeliveryIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -156,6 +161,8 @@ class GatewayRemoteDeliveryIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -179,6 +186,8 @@ class GatewayRemoteDeliveryIntegrationTest { .withBase(SMTP_AND_IMAP_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -206,6 +215,8 @@ class GatewayRemoteDeliveryIntegrationTest { .withBase(SMTP_AND_IMAP_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) .withMailetContainer(generateMailetContainerConfiguration(gatewayProperty)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); @@ -237,6 +248,8 @@ class GatewayRemoteDeliveryIntegrationTest { .addMailet(MailetConfiguration.remoteDeliveryBuilderNoBounces() .matcher(All.class) .addProperty("gateway", gatewayProperty)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java index c754de6..5342e20 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java @@ -35,6 +35,7 @@ import org.apache.james.mailets.configuration.CommonProcessors; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.MailetContainer; import org.apache.james.mailets.configuration.ProcessorConfiguration; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mailrepository.api.MailRepositoryUrl; import org.apache.james.modules.protocols.ImapGuiceProbe; import org.apache.james.modules.protocols.SmtpGuiceProbe; @@ -96,6 +97,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(ErrorMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -116,6 +119,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(NoClassDefFoundErrorMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -137,6 +142,8 @@ class MailetErrorsTest { .mailet(OneRuntimeExceptionMailet.class) .addProperty("onMailetException", "propagate")) .addMailet(MailetConfiguration.TO_TRANSPORT))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); jamesServer.getProbe(DataProbeImpl.class).fluent() @@ -167,6 +174,8 @@ class MailetErrorsTest { .addMailetsFrom(CommonProcessors.transport())) .putProcessor(errorProcessor()) .putProcessor(CommonProcessors.root())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); jamesServer.getProbe(DataProbeImpl.class).fluent() @@ -203,6 +212,8 @@ class MailetErrorsTest { .addMailetsFrom(CommonProcessors.transport())) .putProcessor(errorProcessor()) .putProcessor(CommonProcessors.root())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); jamesServer.getProbe(DataProbeImpl.class).fluent() @@ -232,6 +243,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(NoClassDefFoundErrorMatcher.class) .mailet(Null.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -255,6 +268,8 @@ class MailetErrorsTest { .addMailetsFrom(CommonProcessors.transport())) .putProcessor(errorProcessor()) .putProcessor(CommonProcessors.root())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); jamesServer.getProbe(DataProbeImpl.class).fluent() @@ -292,6 +307,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(RuntimeExceptionMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -317,6 +334,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -341,6 +360,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -362,6 +383,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(RuntimeErrorMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -384,6 +407,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ErrorMailet.class) .addProperty("onMailetException", CUSTOM_PROCESSOR)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -407,6 +432,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(RuntimeExceptionMailet.class) .addProperty("onMailetException", CUSTOM_PROCESSOR)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -433,6 +460,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -459,6 +488,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -479,6 +510,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(ErrorMatcher.class) .mailet(NoopMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -499,6 +532,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(RuntimeExceptionMatcher.class) .mailet(NoopMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -521,6 +556,8 @@ class MailetErrorsTest { .matcher(ErrorMatcher.class) .mailet(NoopMailet.class) .addProperty("onMatchException", CUSTOM_PROCESSOR)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -543,6 +580,8 @@ class MailetErrorsTest { .matcher(RuntimeExceptionMatcher.class) .mailet(NoopMailet.class) .addProperty("onMatchException", CUSTOM_PROCESSOR)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -569,6 +608,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -595,6 +636,8 @@ class MailetErrorsTest { .matcher(All.class) .mailet(ToRepository.class) .addProperty("repositoryPath", CUSTOM_REPOSITORY.asString())))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -621,6 +664,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(Null.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -647,6 +692,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(Null.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -677,6 +724,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(ErrorMatcher.class) .mailet(Null.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -707,6 +756,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(RuntimeExceptionMatcher.class) .mailet(Null.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -737,6 +788,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(ErrorMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); @@ -767,6 +820,8 @@ class MailetErrorsTest { .addMailet(MailetConfiguration.builder() .matcher(All.class) .mailet(RuntimeExceptionMailet.class)))) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class); diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java index 04cf598..c4025dd 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java @@ -46,6 +46,7 @@ import org.apache.james.jdkim.mailets.MockPublicKeyRecordRetriever; import org.apache.james.mailets.configuration.CommonProcessors; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.ProcessorConfiguration; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mock.smtp.server.model.Mail; import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension; import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension.DockerMockSmtp; @@ -138,6 +139,8 @@ class RemoteDeliveryDKIMIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(directResolutionTransport(MailetConfiguration.remoteDeliveryBuilder() .addProperty("mail.smtp.allow8bitmime", "true"))) @@ -179,6 +182,8 @@ class RemoteDeliveryDKIMIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(directResolutionTransport(MailetConfiguration.remoteDeliveryBuilder() .addProperty("mail.smtp.allow8bitmime", "true"))) @@ -221,6 +226,8 @@ class RemoteDeliveryDKIMIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_ONLY_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(directResolutionTransport(MailetConfiguration.remoteDeliveryBuilder())) .putProcessor(CommonProcessors.bounces())) diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorHandlingTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorHandlingTest.java index a85009b..96aab51 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorHandlingTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorHandlingTest.java @@ -39,6 +39,7 @@ import org.apache.james.dnsservice.api.InMemoryDNSService; import org.apache.james.mailets.TemporaryJamesServer; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.ProcessorConfiguration; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mailrepository.api.MailRepositoryUrl; import org.apache.james.mock.smtp.server.model.SMTPCommand; import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension; @@ -97,6 +98,8 @@ class RemoteDeliveryErrorHandlingTest { jamesServer = TemporaryJamesServer.builder() .withBase(Modules.combine(MemoryJamesServerMain.SMTP_ONLY_MODULE, MemoryJamesServerMain.WEBADMIN_TESTING)) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(TemporaryJamesServer.simpleMailetContainerConfiguration() .putProcessor(ProcessorConfiguration.transport() .addMailet(BCC_STRIPPER) diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java index 3ad4da4..224968d 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java @@ -42,6 +42,7 @@ import org.apache.james.mailets.configuration.CommonProcessors; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.MailetContainer; import org.apache.james.mailets.configuration.ProcessorConfiguration; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mock.smtp.server.ConfigurationClient; import org.apache.james.mock.smtp.server.model.Mail; import org.apache.james.mock.smtp.server.model.SMTPCommand; @@ -134,6 +135,8 @@ class RemoteDeliveryErrorTest { .putProcessor(CommonProcessors.error()) .putProcessor(directResolutionTransport()) .putProcessor(CommonProcessors.bounces())) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryForwardIntegrationTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryForwardIntegrationTest.java index 25f3abc..4e50dbb 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryForwardIntegrationTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryForwardIntegrationTest.java @@ -31,6 +31,7 @@ import org.apache.james.core.Domain; import org.apache.james.mailets.configuration.CommonProcessors; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.MailetContainer; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension; import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension.DockerMockSmtp; import org.apache.james.modules.protocols.ImapGuiceProbe; @@ -84,6 +85,8 @@ class RemoteDeliveryForwardIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withMailetContainer(mailetContainer) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(tempDir); jamesServer.start(); webAdminApi = WebAdminUtils.spec(jamesServer.getProbe(WebAdminGuiceProbe.class).getWebAdminPort()); diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryOnSuccessTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryOnSuccessTest.java index 42c6c65..37e522a 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryOnSuccessTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryOnSuccessTest.java @@ -40,6 +40,7 @@ import org.apache.james.mailets.configuration.CommonProcessors; import org.apache.james.mailets.configuration.MailetConfiguration; import org.apache.james.mailets.configuration.MailetContainer; import org.apache.james.mailets.configuration.ProcessorConfiguration; +import org.apache.james.mailets.configuration.SmtpConfiguration; import org.apache.james.mailrepository.api.MailRepositoryUrl; import org.apache.james.mock.smtp.server.ConfigurationClient; import org.apache.james.mock.smtp.server.model.SMTPCommand; @@ -102,6 +103,8 @@ class RemoteDeliveryOnSuccessTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_AND_IMAP_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(MailetContainer.builder() .putProcessor(CommonProcessors.simpleRoot()) .putProcessor(CommonProcessors.error()) diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNLocalIntegrationTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNLocalIntegrationTest.java index 9cb38e8..760b84f 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNLocalIntegrationTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNLocalIntegrationTest.java @@ -92,6 +92,8 @@ class DSNLocalIntegrationTest { jamesServer = TemporaryJamesServer.builder() .withBase(SMTP_AND_IMAP_MODULE) .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService)) + .withSmtpConfiguration(SmtpConfiguration.builder() + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .withMailetContainer(MailetContainer.builder() .putProcessor(CommonProcessors.simpleRoot()) .putProcessor(CommonProcessors.error()) diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRelayTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRelayTest.java index a104f66..a9e7419 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRelayTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRelayTest.java @@ -98,7 +98,8 @@ class DSNRelayTest { .addHook(DSNEhloHook.class.getName()) .addHook(DSNMailParameterHook.class.getName()) .addHook(DSNRcptParameterHook.class.getName()) - .addHook(DSNMessageHook.class.getName())) + .addHook(DSNMessageHook.class.getName()) + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); diff --git a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRemoteIntegrationTest.java b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRemoteIntegrationTest.java index a97ffb2..2cad4ee 100644 --- a/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRemoteIntegrationTest.java +++ b/server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRemoteIntegrationTest.java @@ -147,7 +147,8 @@ class DSNRemoteIntegrationTest { .addHook(DSNEhloHook.class.getName()) .addHook(DSNMailParameterHook.class.getName()) .addHook(DSNRcptParameterHook.class.getName()) - .addHook(DSNMessageHook.class.getName())) + .addHook(DSNMessageHook.class.getName()) + .withAutorizedAddresses("0.0.0.0/0.0.0.0")) .build(temporaryFolder); jamesServer.start(); 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 824460d..dd0c0f9 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 @@ -147,6 +147,7 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe networks.add(addr); } authorizedNetworks = new NetMatcher(networks, dns); + LOGGER.info("Authorized addresses: {}", authorizedNetworks); } SMTPProtocol transport = new SMTPProtocol(getProtocolHandlerChain(), theConfigData) { @@ -175,27 +176,6 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe } authorizedAddresses = configuration.getString("authorizedAddresses", null); - if (authRequired == NEVER && authorizedAddresses == null) { - /* - * if SMTP AUTH is not required then we will use - * authorizedAddresses to determine whether or not to relay - * e-mail. Therefore if SMTP AUTH is not required, we will not - * relay e-mail unless the sending IP address is authorized. - * - * Since this is a change in behavior for James v2, create a - * default authorizedAddresses network of 0.0.0.0/0, which - * matches all possible addresses, thus preserving the current - * behavior. - * - * James v3 should require the <authorizedAddresses> element. - */ - authorizedAddresses = "0.0.0.0/0.0.0.0"; - } - - - if (authorizedNetworks != null) { - LOGGER.info("Authorized addresses: {}", authorizedNetworks); - } // get the message size limit from the conf file and multiply // by 1024, to put it in bytes diff --git a/src/site/xdoc/server/config-smtp-lmtp.xml b/src/site/xdoc/server/config-smtp-lmtp.xml index 6adcaf8..dc52e36 100644 --- a/src/site/xdoc/server/config-smtp-lmtp.xml +++ b/src/site/xdoc/server/config-smtp-lmtp.xml @@ -91,8 +91,7 @@ <dt><strong>auth.announce</strong></dt> <dd>This is an optional tag. Possible values are:<br/> - * never: Don't announce auth. If absent, *authorizedAddresses* are set to a wilcard to accept all remote hosts. - This is the default behaviour.<br/> + * never: Don't announce auth.<br/> * always: always announce AUTH capability to clients.<br/> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
