@@ -217,6 +217,6 @@
- log4j-2.14.1-rc1
+ log4j-2.16.0-rc1
diff --git a/log4j-cassandra/pom.xml b/log4j-cassandra/pom.xml
index dc20877..b75d8d6 100644
--- a/log4j-cassandra/pom.xml
+++ b/log4j-cassandra/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-core-its/pom.xml b/log4j-core-its/pom.xml
index c1625c0..73c9115 100644
--- a/log4j-core-its/pom.xml
+++ b/log4j-core-its/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-core-its
diff --git a/log4j-core-java9/pom.xml b/log4j-core-java9/pom.xml
index dec5c37..12bc12a 100644
--- a/log4j-core-java9/pom.xml
+++ b/log4j-core-java9/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-core-java9
diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml
index ac769dd..613f913 100644
--- a/log4j-core/pom.xml
+++ b/log4j-core/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-core
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
index 30e65ad..4fc45a7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
@@ -27,15 +27,21 @@
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.net.JndiManager;
import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
/**
* Looks up keys from JNDI resources.
+ *
+ * As of Log4j 2.16.0, JNDI lookups are disabled by default as a mitigation for
+ * CVE-2021-44228 (Log4Shell). To re-enable, set the system property
+ * {@code log4j2.enableJndiLookup=true}.
*/
@Plugin(name = "jndi", category = StrLookup.CATEGORY)
public class JndiLookup extends AbstractLookup {
private static final Logger LOGGER = StatusLogger.getLogger();
private static final Marker LOOKUP = MarkerManager.getMarker("LOOKUP");
+ static final String JNDI_LOOKUP_ENABLED_PROPERTY = "log4j2.enableJndiLookup";
/** JNDI resource path prefix used in a J2EE container */
static final String CONTAINER_JNDI_RESOURCE_PATH_PREFIX = "java:comp/env/";
@@ -48,6 +54,11 @@ public class JndiLookup extends AbstractLookup {
*/
@Override
public String lookup(final LogEvent event, final String key) {
+ if (!isJndiLookupEnabled()) {
+ LOGGER.warn(LOOKUP, "JNDI lookup is not enabled. To enable, set system property '{}=true'. "
+ + "See CVE-2021-44228 for details.", JNDI_LOOKUP_ENABLED_PROPERTY);
+ return null;
+ }
if (key == null) {
return null;
}
@@ -60,6 +71,10 @@ public String lookup(final LogEvent event, final String key) {
}
}
+ private static boolean isJndiLookupEnabled() {
+ return PropertiesUtil.getProperties().getBooleanProperty(JNDI_LOOKUP_ENABLED_PROPERTY, false);
+ }
+
/**
* Convert the given JNDI name to the actual JNDI name to use.
* Default implementation applies the "java:comp/env/" prefix
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
index 2670857..2c0caf6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
@@ -17,6 +17,10 @@
package org.apache.logging.log4j.core.net;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
@@ -27,15 +31,45 @@
import org.apache.logging.log4j.core.appender.AbstractManager;
import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.util.JndiCloser;
+import org.apache.logging.log4j.util.PropertiesUtil;
/**
* Manages a JNDI {@link javax.naming.Context}.
*
+ * As of Log4j 2.16.0, JNDI features are disabled by default as a mitigation for
+ * CVE-2021-44228 (Log4Shell). To re-enable, set the system property
+ * {@code log4j2.enableJndi=true}. Allowed JNDI protocols can be configured via
+ * {@code log4j2.allowedJndiProtocols} (default: {@code java}) and allowed LDAP hosts
+ * via {@code log4j2.allowedLdapHosts} (default: {@code localhost}).
+ *
* @since 2.1
*/
public class JndiManager extends AbstractManager {
private static final JndiManagerFactory FACTORY = new JndiManagerFactory();
+ static final String JNDI_MANAGER_ENABLED_PROPERTY = "log4j2.enableJndi";
+ private static final String ALLOWED_PROTOCOLS_PROPERTY = "log4j2.allowedJndiProtocols";
+ private static final String ALLOWED_HOSTS_PROPERTY = "log4j2.allowedLdapHosts";
+ private static final List ALLOWED_PROTOCOLS;
+ private static final List ALLOWED_HOSTS;
+
+ static {
+ final String protocols = PropertiesUtil.getProperties().getStringProperty(
+ ALLOWED_PROTOCOLS_PROPERTY, "java");
+ ALLOWED_PROTOCOLS = Arrays.asList(protocols.toLowerCase().split("\\s*,\\s*"));
+ final String hosts = PropertiesUtil.getProperties().getStringProperty(
+ ALLOWED_HOSTS_PROPERTY, "localhost,127.0.0.1,0:0:0:0:0:0:0:1,::1");
+ ALLOWED_HOSTS = Arrays.asList(hosts.toLowerCase().split("\\s*,\\s*"));
+ }
+
+ /**
+ * Returns whether JNDI is enabled via the {@code log4j2.enableJndi} system property.
+ *
+ * @return {@code true} if JNDI is enabled, {@code false} otherwise.
+ */
+ public static boolean isJndiEnabled() {
+ return PropertiesUtil.getProperties().getBooleanProperty(JNDI_MANAGER_ENABLED_PROPERTY, false);
+ }
private final Context context;
@@ -162,6 +196,10 @@ protected boolean releaseSub(final long timeout, final TimeUnit timeUnit) {
/**
* Looks up a named object through this JNDI context.
*
+ * This method validates the URI scheme against the allowed protocols list
+ * ({@code log4j2.allowedJndiProtocols}). LDAP/LDAPS URIs are also validated
+ * against the allowed hosts list ({@code log4j2.allowedLdapHosts}).
+ *
* @param name name of the object to look up.
* @param the type of the object.
* @return the named object if it could be located.
@@ -169,6 +207,39 @@ protected boolean releaseSub(final long timeout, final TimeUnit timeUnit) {
*/
@SuppressWarnings("unchecked")
public T lookup(final String name) throws NamingException {
+ // Reject any name containing a colon before the first slash — this catches
+ // URI-like patterns such as "ldap:something" that may not parse as valid URIs
+ // but could still be interpreted by a JNDI provider as a remote lookup.
+ final int colonIndex = name.indexOf(':');
+ final int firstSlash = name.indexOf('/');
+ if (colonIndex >= 0 && (firstSlash < 0 || colonIndex < firstSlash)) {
+ final String potentialScheme = name.substring(0, colonIndex).toLowerCase();
+ if (!ALLOWED_PROTOCOLS.contains(potentialScheme)) {
+ LOGGER.warn("JNDI name '{}' uses a protocol that is not allowed. Allowed protocols: {}.",
+ name, ALLOWED_PROTOCOLS);
+ return null;
+ }
+ }
+ try {
+ final URI uri = new URI(name);
+ final String scheme = uri.getScheme();
+ if (scheme != null && !ALLOWED_PROTOCOLS.contains(scheme.toLowerCase())) {
+ LOGGER.warn("JNDI URI '{}' uses a protocol that is not allowed. Allowed protocols: {}.",
+ name, ALLOWED_PROTOCOLS);
+ return null;
+ }
+ if (scheme != null && (scheme.equalsIgnoreCase("ldap") || scheme.equalsIgnoreCase("ldaps"))) {
+ final String host = uri.getHost();
+ if (host != null && !ALLOWED_HOSTS.contains(host.toLowerCase())) {
+ LOGGER.warn("JNDI URI '{}' connects to a host that is not allowed. Allowed hosts: {}.",
+ name, ALLOWED_HOSTS);
+ return null;
+ }
+ }
+ } catch (final URISyntaxException e) {
+ LOGGER.warn("JNDI name '{}' is not a valid URI and could not be validated; lookup rejected.", name);
+ return null;
+ }
return (T) this.context.lookup(name);
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/JndiLookupTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/JndiLookupTest.java
index c2e34e3..734b9e3 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/JndiLookupTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/JndiLookupTest.java
@@ -50,27 +50,87 @@ private Map createBindings() {
return map;
}
+ /**
+ * Verifies that JNDI lookups return null when JNDI is disabled (the default).
+ * This is the expected secure-by-default behaviour introduced to mitigate CVE-2021-44228.
+ */
+ @Test
+ public void testLookupDisabledByDefault() {
+ // Ensure the property is not set so the default (disabled) is used.
+ final String previous = System.getProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ try {
+ System.clearProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ final StrLookup lookup = new JndiLookup();
+ assertNull("JNDI lookup should return null when disabled by default (CVE-2021-44228)",
+ lookup.lookup(TEST_CONTEXT_RESOURCE_NAME));
+ } finally {
+ if (previous != null) {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, previous);
+ }
+ }
+ }
+
+ /**
+ * Verifies that JNDI lookups return null when the property is explicitly set to false.
+ */
+ @Test
+ public void testLookupExplicitlyDisabled() {
+ final String previous = System.getProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ try {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, "false");
+ final StrLookup lookup = new JndiLookup();
+ assertNull("JNDI lookup should return null when explicitly disabled",
+ lookup.lookup(TEST_CONTEXT_RESOURCE_NAME));
+ } finally {
+ if (previous != null) {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, previous);
+ } else {
+ System.clearProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ }
+ }
+ }
+
@Test
public void testLookup() {
- final StrLookup lookup = new JndiLookup();
+ final String previous = System.getProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ try {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, "true");
+ final StrLookup lookup = new JndiLookup();
- String contextName = lookup.lookup(TEST_CONTEXT_RESOURCE_NAME);
- assertEquals(TEST_CONTEXT_NAME, contextName);
+ String contextName = lookup.lookup(TEST_CONTEXT_RESOURCE_NAME);
+ assertEquals(TEST_CONTEXT_NAME, contextName);
- contextName = lookup.lookup(JndiLookup.CONTAINER_JNDI_RESOURCE_PATH_PREFIX + TEST_CONTEXT_RESOURCE_NAME);
- assertEquals(TEST_CONTEXT_NAME, contextName);
+ contextName = lookup.lookup(JndiLookup.CONTAINER_JNDI_RESOURCE_PATH_PREFIX + TEST_CONTEXT_RESOURCE_NAME);
+ assertEquals(TEST_CONTEXT_NAME, contextName);
- final String nonExistingResource = lookup.lookup("logging/non-existing-resource");
- assertNull(nonExistingResource);
+ final String nonExistingResource = lookup.lookup("logging/non-existing-resource");
+ assertNull(nonExistingResource);
+ } finally {
+ if (previous != null) {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, previous);
+ } else {
+ System.clearProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ }
+ }
}
@Test
public void testNonStringLookup() throws Exception {
// LOG4J2-1310
- final StrLookup lookup = new JndiLookup();
- final String integralValue = lookup.lookup(TEST_INTEGRAL_NAME);
- assertEquals(String.valueOf(TEST_INTEGRAL_VALUE), integralValue);
- final String collectionValue = lookup.lookup(TEST_STRINGS_NAME);
- assertEquals(String.valueOf(TEST_STRINGS_COLLECTION), collectionValue);
+ final String previous = System.getProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ try {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, "true");
+ final StrLookup lookup = new JndiLookup();
+ final String integralValue = lookup.lookup(TEST_INTEGRAL_NAME);
+ assertEquals(String.valueOf(TEST_INTEGRAL_VALUE), integralValue);
+ final String collectionValue = lookup.lookup(TEST_STRINGS_NAME);
+ assertEquals(String.valueOf(TEST_STRINGS_COLLECTION), collectionValue);
+ } finally {
+ if (previous != null) {
+ System.setProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY, previous);
+ } else {
+ System.clearProperty(JndiLookup.JNDI_LOOKUP_ENABLED_PROPERTY);
+ }
+ }
}
}
diff --git a/log4j-couchdb/pom.xml b/log4j-couchdb/pom.xml
index 4dc320a..0772795 100644
--- a/log4j-couchdb/pom.xml
+++ b/log4j-couchdb/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-distribution/pom.xml b/log4j-distribution/pom.xml
index 63c4219..fa8a38e 100644
--- a/log4j-distribution/pom.xml
+++ b/log4j-distribution/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-distribution
diff --git a/log4j-docker/pom.xml b/log4j-docker/pom.xml
index 36d483a..585c2b3 100644
--- a/log4j-docker/pom.xml
+++ b/log4j-docker/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-docker
diff --git a/log4j-flume-ng/pom.xml b/log4j-flume-ng/pom.xml
index 5291c10..55ffb34 100644
--- a/log4j-flume-ng/pom.xml
+++ b/log4j-flume-ng/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-flume-ng
diff --git a/log4j-iostreams/pom.xml b/log4j-iostreams/pom.xml
index c0e6614..d38f2a7 100644
--- a/log4j-iostreams/pom.xml
+++ b/log4j-iostreams/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-iostreams
diff --git a/log4j-jcl/pom.xml b/log4j-jcl/pom.xml
index 7e5010a..0ee8d36 100644
--- a/log4j-jcl/pom.xml
+++ b/log4j-jcl/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-jcl
diff --git a/log4j-jdbc-dbcp2/pom.xml b/log4j-jdbc-dbcp2/pom.xml
index 6b2fd67..8efd342 100644
--- a/log4j-jdbc-dbcp2/pom.xml
+++ b/log4j-jdbc-dbcp2/pom.xml
@@ -11,7 +11,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-jmx-gui/pom.xml b/log4j-jmx-gui/pom.xml
index 94d1200..930bae4 100644
--- a/log4j-jmx-gui/pom.xml
+++ b/log4j-jmx-gui/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-jmx-gui
diff --git a/log4j-jpa/pom.xml b/log4j-jpa/pom.xml
index 0b27de0..c29e1cf 100644
--- a/log4j-jpa/pom.xml
+++ b/log4j-jpa/pom.xml
@@ -11,7 +11,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-jpl/pom.xml b/log4j-jpl/pom.xml
index 07fbd04..f15f266 100644
--- a/log4j-jpl/pom.xml
+++ b/log4j-jpl/pom.xml
@@ -20,7 +20,7 @@
log4j
org.apache.logging.log4j
- 2.14.1
+ 2.16.0
../
4.0.0
diff --git a/log4j-jul/pom.xml b/log4j-jul/pom.xml
index 65cfc8a..6d26c6f 100644
--- a/log4j-jul/pom.xml
+++ b/log4j-jul/pom.xml
@@ -20,7 +20,7 @@
log4j
org.apache.logging.log4j
- 2.14.1
+ 2.16.0
../
4.0.0
diff --git a/log4j-kubernetes/pom.xml b/log4j-kubernetes/pom.xml
index 1c44c8a..5c47a8c 100644
--- a/log4j-kubernetes/pom.xml
+++ b/log4j-kubernetes/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-kubernetes
diff --git a/log4j-layout-template-json/pom.xml b/log4j-layout-template-json/pom.xml
index 01f6b36..6f734c8 100644
--- a/log4j-layout-template-json/pom.xml
+++ b/log4j-layout-template-json/pom.xml
@@ -22,7 +22,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
log4j-layout-template-json
diff --git a/log4j-liquibase/pom.xml b/log4j-liquibase/pom.xml
index e3a8712..5c5be20 100644
--- a/log4j-liquibase/pom.xml
+++ b/log4j-liquibase/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-liquibase
diff --git a/log4j-mongodb3/pom.xml b/log4j-mongodb3/pom.xml
index ddc8c1d..8674f18 100644
--- a/log4j-mongodb3/pom.xml
+++ b/log4j-mongodb3/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-mongodb4/pom.xml b/log4j-mongodb4/pom.xml
index 9c8074a..3368493 100644
--- a/log4j-mongodb4/pom.xml
+++ b/log4j-mongodb4/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/log4j-osgi/pom.xml b/log4j-osgi/pom.xml
index d36027d..0f762fb 100644
--- a/log4j-osgi/pom.xml
+++ b/log4j-osgi/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-osgi
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index 60bbc92..5532a22 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -20,7 +20,7 @@
log4j
org.apache.logging.log4j
- 2.14.1
+ 2.16.0
../
diff --git a/log4j-samples/log4j-samples-configuration/pom.xml b/log4j-samples/log4j-samples-configuration/pom.xml
index 9604a0a..b29ca03 100644
--- a/log4j-samples/log4j-samples-configuration/pom.xml
+++ b/log4j-samples/log4j-samples-configuration/pom.xml
@@ -20,7 +20,7 @@
log4j-samples
org.apache.logging.log4j.samples
- 2.14.1
+ 2.16.0
log4j-samples-configuration
jar
diff --git a/log4j-samples/log4j-samples-flume-common/pom.xml b/log4j-samples/log4j-samples-flume-common/pom.xml
index e2cf323..706b0dd 100644
--- a/log4j-samples/log4j-samples-flume-common/pom.xml
+++ b/log4j-samples/log4j-samples-flume-common/pom.xml
@@ -20,7 +20,7 @@
log4j-samples
org.apache.logging.log4j.samples
- 2.14.1
+ 2.16.0
log4j-samples-flume-common
jar
diff --git a/log4j-samples/log4j-samples-flume-embedded/pom.xml b/log4j-samples/log4j-samples-flume-embedded/pom.xml
index 7ad8136..c370526 100644
--- a/log4j-samples/log4j-samples-flume-embedded/pom.xml
+++ b/log4j-samples/log4j-samples-flume-embedded/pom.xml
@@ -20,7 +20,7 @@
log4j-samples
org.apache.logging.log4j.samples
- 2.14.1
+ 2.16.0
log4j-samples-flume-embedded
war
diff --git a/log4j-samples/log4j-samples-flume-remote/pom.xml b/log4j-samples/log4j-samples-flume-remote/pom.xml
index 12bd89e..70822fe 100644
--- a/log4j-samples/log4j-samples-flume-remote/pom.xml
+++ b/log4j-samples/log4j-samples-flume-remote/pom.xml
@@ -20,7 +20,7 @@
log4j-samples
org.apache.logging.log4j.samples
- 2.14.1
+ 2.16.0
log4j-samples-flume-remote
war
diff --git a/log4j-samples/log4j-samples-loggerProperties/pom.xml b/log4j-samples/log4j-samples-loggerProperties/pom.xml
index b8afb81..2fd1432 100644
--- a/log4j-samples/log4j-samples-loggerProperties/pom.xml
+++ b/log4j-samples/log4j-samples-loggerProperties/pom.xml
@@ -20,7 +20,7 @@
log4j-samples
org.apache.logging.log4j.samples
- 2.14.1
+ 2.16.0
log4j-samples-loggerProperties
jar
diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index 3f6264d..0e09101 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
org.apache.logging.log4j.samples
diff --git a/log4j-slf4j-impl/pom.xml b/log4j-slf4j-impl/pom.xml
index 149e4a5..a9ba420 100644
--- a/log4j-slf4j-impl/pom.xml
+++ b/log4j-slf4j-impl/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-slf4j-impl
diff --git a/log4j-slf4j18-impl/pom.xml b/log4j-slf4j18-impl/pom.xml
index 6229c2f..967b806 100644
--- a/log4j-slf4j18-impl/pom.xml
+++ b/log4j-slf4j18-impl/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-slf4j18-impl
diff --git a/log4j-spring-boot/pom.xml b/log4j-spring-boot/pom.xml
index 681b96c..bd9924d 100644
--- a/log4j-spring-boot/pom.xml
+++ b/log4j-spring-boot/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-spring-boot
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
index a4f0689..e45df0e 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j-spring-cloud-config
- 2.14.1
+ 2.16.0
../
log4j-spring-cloud-config-client
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
index fb4517a..643d6be 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
@@ -21,7 +21,7 @@
org.apache.logging.log4j.samples
log4j-spring-cloud-config-samples
- 2.14.1
+ 2.16.0
..
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
index 7e13f68..d260fcb 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
@@ -21,7 +21,7 @@
org.apache.logging.log4j.samples
log4j-spring-cloud-config-sample-server
jar
- 2.14.1
+ 2.16.0
Apache Log4j Sample Configuration Service
Sample Cloud Config Server
@@ -289,6 +289,6 @@
- log4j-2.14.1-rc1
+ log4j-2.16.0-rc1
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
index 2c7f5cc..81a291a 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j-spring-cloud-config
- 2.14.1
+ 2.16.0
../
org.apache.logging.log4j.samples
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index fe28995..075fad4 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
org.apache.logging.log4j
diff --git a/log4j-taglib/pom.xml b/log4j-taglib/pom.xml
index 4ad7927..e881224 100644
--- a/log4j-taglib/pom.xml
+++ b/log4j-taglib/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-taglib
diff --git a/log4j-to-slf4j/pom.xml b/log4j-to-slf4j/pom.xml
index af24d40..359675a 100644
--- a/log4j-to-slf4j/pom.xml
+++ b/log4j-to-slf4j/pom.xml
@@ -20,7 +20,7 @@
org.apache.logging.log4j
log4j
- 2.14.1
+ 2.16.0
../
log4j-to-slf4j
diff --git a/log4j-web/pom.xml b/log4j-web/pom.xml
index 85f73eb..4a1ea1a 100644
--- a/log4j-web/pom.xml
+++ b/log4j-web/pom.xml
@@ -20,7 +20,7 @@
log4j
org.apache.logging.log4j
- 2.14.1
+ 2.16.0
4.0.0
diff --git a/pom.xml b/pom.xml
index 323fbd7..00b88ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
log4j
pom
Apache Log4j 2
- 2.14.1
+ 2.16.0
org.apache.logging
logging-parent
@@ -174,12 +174,12 @@
scm:git:https://gitbox.apache.org/repos/asf/logging-log4j2.git
scm:git:https://gitbox.apache.org/repos/asf/logging-log4j2.git
https://gitbox.apache.org/repos/asf?p=logging-log4j2.git
- log4j-2.14.1-rc1
+ log4j-2.16.0-rc1
${basedir}
- 2.14.1
+ 2.16.0
Ralph Goers
B3D8E1BA