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:09:20 UTC
[logging-log4j2] branch master 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 master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/master by this push:
new 3c649ce LOG4J2-3107 SmtpManager.createManagerName() ignores port (#528)
3c649ce is described below
commit 3c649ce4a51111914d9f5e274445fe12cf1a28da
Author: Markus Spann <ma...@hotmail.com>
AuthorDate: Fri Jun 25 10:03:13 2021 +0200
LOG4J2-3107 SmtpManager.createManagerName() ignores port (#528)
---
.../logging/log4j/core/net/SmtpManagerTest.java | 19 +++++++++++++++++
.../logging/log4j/smtp/appender/SmtpManager.java | 24 +++++++++++-----------
src/changes/changes.xml | 3 +++
3 files changed, 34 insertions(+), 12 deletions(-)
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/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java b/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
index f8c0154..9d93932 100644
--- a/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
+++ b/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
@@ -108,15 +108,21 @@ public class SmtpManager extends AbstractManager {
protocol = "smtp";
}
- final String managerName = 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(managerName, FACTORY, new FactoryData(to, cc, bcc, from, replyTo, subjectSerializer,
+ return getManager(name, FACTORY, new FactoryData(to, cc, bcc, from, replyTo, subjectSerializer,
protocol, host, port, username, password, isDebug, numElements, sslConfiguration));
}
- 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,
@@ -125,8 +131,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) {
@@ -156,20 +162,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/src/changes/changes.xml b/src/changes/changes.xml
index d355983..0b7c3e0 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -208,6 +208,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>