You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/06/25 08:03:22 UTC
[logging-log4j2] branch release-2.x updated: LOG4J2-3107
SmtpManager.createManagerName() ignores port (#528)
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new fb747ab LOG4J2-3107 SmtpManager.createManagerName() ignores port (#528)
fb747ab is described below
commit fb747abea62509294dc2060536f1f1b50318f3b4
Author: Markus Spann <ma...@hotmail.com>
AuthorDate: Fri Jun 25 10:03:13 2021 +0200
LOG4J2-3107 SmtpManager.createManagerName() ignores port (#528)
---
.../apache/logging/log4j/core/net/SmtpManager.java | 23 +++++++++++-----------
.../logging/log4j/core/net/SmtpManagerTest.java | 19 ++++++++++++++++++
src/changes/changes.xml | 3 +++
3 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
index 323c5a8..a8ccb7e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
@@ -49,7 +49,6 @@ import org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.core.util.CyclicBuffer;
-import org.apache.logging.log4j.core.util.NameUtil;
import org.apache.logging.log4j.core.util.NetUtils;
import org.apache.logging.log4j.message.ReusableMessage;
import org.apache.logging.log4j.util.PropertiesUtil;
@@ -107,7 +106,7 @@ public class SmtpManager extends AbstractManager {
protocol = "smtp";
}
- final String name = createManagerName(to, cc, bcc, from, replyTo, subject, protocol, host, username, password, isDebug, filterName);
+ final String name = createManagerName(to, cc, bcc, from, replyTo, subject, protocol, host, port, username, isDebug, filterName);
final Serializer subjectSerializer = PatternLayout.newSerializerBuilder().setConfiguration(config).setPattern(subject).build();
return getManager(name, FACTORY, new FactoryData(to, cc, bcc, from, replyTo, subjectSerializer,
@@ -115,7 +114,13 @@ public class SmtpManager extends AbstractManager {
}
- private static String createManagerName(
+ /**
+ * Creates a unique-per-configuration name for an smtp manager using the specified the parameters.<br>
+ * Using such a name allows us to maintain singletons per unique configurations.
+ *
+ * @return smtp manager name
+ */
+ static String createManagerName(
final String to,
final String cc,
final String bcc,
@@ -124,8 +129,8 @@ public class SmtpManager extends AbstractManager {
final String subject,
final String protocol,
final String host,
+ final int port,
final String username,
- final String password,
final boolean isDebug,
final String filterName) {
@@ -155,20 +160,14 @@ public class SmtpManager extends AbstractManager {
sb.append(subject);
}
sb.append(':');
- sb.append(protocol).append(':').append(host).append(':').append("port").append(':');
+ sb.append(protocol).append(':').append(host).append(':').append(port).append(':');
if (username != null) {
sb.append(username);
}
- sb.append(':');
- if (password != null) {
- sb.append(password);
- }
sb.append(isDebug ? ":debug:" : "::");
sb.append(filterName);
- final String hash = NameUtil.md5(sb.toString());
- return "SMTP:" + hash;
-
+ return "SMTP:" + sb.toString();
}
/**
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SmtpManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SmtpManagerTest.java
new file mode 100644
index 0000000..e19e76f
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SmtpManagerTest.java
@@ -0,0 +1,19 @@
+package org.apache.logging.log4j.core.net;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit tests for {@link SmtpManager}.
+ */
+class SmtpManagerTest {
+
+ @Test
+ void testCreateManagerName() {
+ String managerName = SmtpManager.createManagerName("to", "cc", null, "from", null, "LOG4J2-3107",
+ "proto", "smtp.log4j.com", 4711, "username", false, "filter");
+ assertEquals("SMTP:to:cc::from::LOG4J2-3107:proto:smtp.log4j.com:4711:username::filter", managerName);
+ }
+
+}
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3a78751..6b35a21 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -69,6 +69,9 @@
Allow a PatternSelector to be specified on GelfLayout.
</action>
<!-- FIXES -->
+ <action issue="LOG4J2-3107" dev="vy" type="fix" due-to="Markus Spann">
+ SmtpManager.createManagerName ignores port.
+ </action>
<action issue="LOG4J2-3080" dev="vy" type="fix">
Use SimpleMessage in Log4j 1 Category whenever possible.
</action>