diff --git a/log4j-1.2-api/pom.xml b/log4j-1.2-api/pom.xml index 93f9656..9260580 100644 --- a/log4j-1.2-api/pom.xml +++ b/log4j-1.2-api/pom.xml @@ -20,7 +20,7 @@ org.apache.logging.log4j log4j - 2.14.1 + 2.16.0 ../ log4j-1.2-api diff --git a/log4j-api-java9/pom.xml b/log4j-api-java9/pom.xml index 1293e82..03644bf 100644 --- a/log4j-api-java9/pom.xml +++ b/log4j-api-java9/pom.xml @@ -20,7 +20,7 @@ org.apache.logging.log4j log4j - 2.14.1 + 2.16.0 ../ log4j-api-java9 diff --git a/log4j-api/pom.xml b/log4j-api/pom.xml index 6e31895..bd0f609 100644 --- a/log4j-api/pom.xml +++ b/log4j-api/pom.xml @@ -20,7 +20,7 @@ org.apache.logging.log4j log4j - 2.14.1 + 2.16.0 ../ log4j-api diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml index a10a58d..fc75214 100644 --- a/log4j-appserver/pom.xml +++ b/log4j-appserver/pom.xml @@ -20,7 +20,7 @@ log4j org.apache.logging.log4j - 2.14.1 + 2.16.0 4.0.0 diff --git a/log4j-bom/pom.xml b/log4j-bom/pom.xml index b379975..114c40b 100644 --- a/log4j-bom/pom.xml +++ b/log4j-bom/pom.xml @@ -26,7 +26,7 @@ Apache Log4j Bill of Materials org.apache.logging.log4j log4j-bom - 2.14.1 + 2.16.0 pom @@ -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