You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2023/10/16 00:30:53 UTC
[logging-log4j2] branch main updated (1b02c8eac7 -> 85d3a9832d)
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
from 1b02c8eac7 Remove unused module-info file
new 4b42577e54 Move ConfigurationFactory::authorizationProvider to AuthorizationProvider::getAuthorizationProvider
new ea8e12a2fa Remove unused variable
new e55649e72d Add Configuration::getContextProperties
new fe1c85ffa6 Remove cached SslConfigurationFactory::getSslConfiguration
new 85d3a9832d Fix NPE in AbstractFilterable::removeFilter
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../log4j/core/net/UrlConnectionFactoryTest.java | 4 +--
.../core/net/ssl/SslConfigurationFactoryTest.java | 8 ++---
.../log4j/core/config/AbstractConfiguration.java | 7 +++-
.../logging/log4j/core/config/Configuration.java | 18 +++++++++-
.../log4j/core/config/ConfigurationFactory.java | 24 --------------
.../log4j/core/config/ConfigurationSource.java | 6 ++--
.../logging/log4j/core/config/HttpWatcher.java | 21 ++++++++----
.../log4j/core/filter/AbstractFilterable.java | 2 +-
.../core/filter/MutableThreadContextMapFilter.java | 38 +++++++++++++++-------
.../log4j/core/net/UrlConnectionFactory.java | 16 +++++----
.../core/net/ssl/SslConfigurationFactory.java | 12 +------
.../log4j/core/util/AuthorizationProvider.java | 17 ++++++++++
.../apache/logging/log4j/core/util/Watcher.java | 4 ---
.../core/util/internal/HttpInputStreamUtil.java | 25 +++++---------
.../spring/boot/Log4j2SpringBootLoggingSystem.java | 12 +++----
15 files changed, 115 insertions(+), 99 deletions(-)
[logging-log4j2] 03/05: Add Configuration::getContextProperties
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit e55649e72df545a1b79258b97baf285cd01a9c7a
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Oct 15 19:09:22 2023 -0500
Add Configuration::getContextProperties
Signed-off-by: Matt Sicker <ma...@apache.org>
---
.../log4j/core/config/AbstractConfiguration.java | 7 ++++++-
.../logging/log4j/core/config/Configuration.java | 18 +++++++++++++++++-
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index ebf083b0da..5282161dd2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -159,7 +159,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
private AsyncLoggerConfigDisruptor asyncLoggerConfigDisruptor;
private AsyncWaitStrategyFactory asyncWaitStrategyFactory;
private final WeakReference<LoggerContext> loggerContext;
- private PropertyEnvironment contextProperties;
+ private final PropertyEnvironment contextProperties;
private final Lock configLock = new ReentrantLock();
/**
@@ -203,6 +203,11 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
return properties;
}
+ @Override
+ public PropertyEnvironment getContextProperties() {
+ return contextProperties;
+ }
+
@Override
public ScriptManager getScriptManager() {
return scriptManager;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
index 76e28f9084..4e940bd396 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
@@ -34,9 +34,11 @@ import org.apache.logging.log4j.core.lookup.StrSubstitutor;
import org.apache.logging.log4j.core.net.Advertiser;
import org.apache.logging.log4j.core.script.ScriptManager;
import org.apache.logging.log4j.core.time.NanoClock;
+import org.apache.logging.log4j.core.util.NetUtils;
import org.apache.logging.log4j.core.util.WatchManager;
import org.apache.logging.log4j.plugins.Node;
import org.apache.logging.log4j.plugins.di.Key;
+import org.apache.logging.log4j.util.PropertyEnvironment;
/**
* Interface that must be implemented to create a configuration.
@@ -100,8 +102,22 @@ public interface Configuration extends Filterable {
void removeLogger(final String name);
+ /**
+ * Returns the configuration properties. These will initially include entries for {@code contextName}
+ * with the {@linkplain org.apache.logging.log4j.spi.LoggerContext#getName() context name} and
+ * {@code hostName} with the {@linkplain NetUtils#getLocalHostname() local host name}. Additional
+ * properties may be defined by plugins.
+ */
Map<String, String> getProperties();
+ /**
+ * Returns the {@linkplain org.apache.logging.log4j.spi.LoggerContext#getProperties() context properties}
+ * associated with the logger context for this configuration.
+ *
+ * @return the context properties
+ */
+ PropertyEnvironment getContextProperties();
+
/**
* Returns the root Logger.
*
@@ -225,7 +241,7 @@ public interface Configuration extends Filterable {
void setNanoClock(NanoClock nanoClock);
/**
- * Gets the logger context.
+ * Gets the logger context. This may be {@code null} if the context has already been stopped and garbage collected.
*
* @return the logger context.
*/
[logging-log4j2] 02/05: Remove unused variable
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit ea8e12a2faab99f9a746cc693398b247cca9e7f7
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Oct 15 18:40:33 2023 -0500
Remove unused variable
Signed-off-by: Matt Sicker <ma...@apache.org>
---
.../src/main/java/org/apache/logging/log4j/core/util/Watcher.java | 4 ----
1 file changed, 4 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
index bf1b84cf24..f67a995f39 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
@@ -20,9 +20,6 @@ import java.util.List;
import org.apache.logging.log4j.core.config.ConfigurationListener;
import org.apache.logging.log4j.core.config.Reconfigurable;
-import org.apache.logging.log4j.plugins.Namespace;
-import org.apache.logging.log4j.plugins.di.Key;
-import org.apache.logging.log4j.plugins.model.PluginNamespace;
/**
* Watches for changes in a Source and performs an action when it is modified.
@@ -32,7 +29,6 @@ import org.apache.logging.log4j.plugins.model.PluginNamespace;
public interface Watcher {
String CATEGORY = "Watcher";
- Key<PluginNamespace> PLUGIN_CATEGORY_KEY = new @Namespace(CATEGORY) Key<>() {};
String ELEMENT_TYPE = "watcher";
/**
[logging-log4j2] 05/05: Fix NPE in AbstractFilterable::removeFilter
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 85d3a9832d07e7edb71398501802ad46a503e5f3
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Oct 15 19:30:21 2023 -0500
Fix NPE in AbstractFilterable::removeFilter
Signed-off-by: Matt Sicker <ma...@apache.org>
---
.../java/org/apache/logging/log4j/core/filter/AbstractFilterable.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
index 0a8b3d6dbd..3bc1dc9e86 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
@@ -157,7 +157,7 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi
filterLock.lock();
try {
final var currentFilter = this.filter;
- if (currentFilter == filter || currentFilter.equals(filter)) {
+ if (currentFilter == filter || filter.equals(currentFilter)) {
this.filter = null;
} else if (currentFilter instanceof CompositeFilter) {
CompositeFilter composite = (CompositeFilter) currentFilter;
[logging-log4j2] 04/05: Remove cached SslConfigurationFactory::getSslConfiguration
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit fe1c85ffa6bf0e048d4293f04477d9414da44cf8
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Oct 15 19:30:04 2023 -0500
Remove cached SslConfigurationFactory::getSslConfiguration
Signed-off-by: Matt Sicker <ma...@apache.org>
---
.../log4j/core/net/UrlConnectionFactoryTest.java | 4 +--
.../core/net/ssl/SslConfigurationFactoryTest.java | 8 ++---
.../log4j/core/config/ConfigurationSource.java | 2 +-
.../logging/log4j/core/config/HttpWatcher.java | 21 ++++++++-----
.../core/filter/MutableThreadContextMapFilter.java | 35 +++++++++++++++-------
.../log4j/core/net/UrlConnectionFactory.java | 12 ++++----
.../core/net/ssl/SslConfigurationFactory.java | 12 +-------
.../core/util/internal/HttpInputStreamUtil.java | 25 +++++-----------
.../spring/boot/Log4j2SpringBootLoggingSystem.java | 7 ++---
9 files changed, 63 insertions(+), 63 deletions(-)
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/UrlConnectionFactoryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/UrlConnectionFactoryTest.java
index 39e4a330a7..534d4c6136 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/UrlConnectionFactoryTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/UrlConnectionFactoryTest.java
@@ -37,6 +37,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.ConfigurationSourceTest;
+import org.apache.logging.log4j.util.PropertiesUtil;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
@@ -73,7 +74,6 @@ public class UrlConnectionFactoryTest {
private static Server server;
private static final Base64.Decoder decoder = Base64.getDecoder();
private static int port;
- private static final int BUF_SIZE = 1024;
@BeforeAll
public static void startServer() throws Exception {
@@ -134,7 +134,7 @@ public class UrlConnectionFactoryTest {
private int verifyNotModified(final URI uri, final long lastModifiedMillis) throws Exception {
final HttpURLConnection urlConnection = UrlConnectionFactory.createConnection(uri.toURL(),
- lastModifiedMillis, null, null);
+ lastModifiedMillis, null, null, PropertiesUtil.getProperties());
urlConnection.connect();
try {
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactoryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactoryTest.java
index 707f4c8e50..9c691b4475 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactoryTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactoryTest.java
@@ -43,13 +43,13 @@ public class SslConfigurationFactoryTest {
final Properties props = new Properties();
final PropertiesUtil util = new PropertiesUtil(props);
// No keystore and truststore -> no SslConfiguration
- SslConfiguration sslConfiguration = SslConfigurationFactory.createSslConfiguration(util);
+ SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration(util);
assertNull(sslConfiguration);
// Only keystore
props.clear();
addKeystoreConfiguration(props);
util.reload();
- sslConfiguration = SslConfigurationFactory.createSslConfiguration(util);
+ sslConfiguration = SslConfigurationFactory.getSslConfiguration(util);
assertNotNull(sslConfiguration);
assertNotNull(sslConfiguration.getKeyStoreConfig());
assertNull(sslConfiguration.getTrustStoreConfig());
@@ -57,7 +57,7 @@ public class SslConfigurationFactoryTest {
props.clear();
addTruststoreConfiguration(props);
util.reload();
- sslConfiguration = SslConfigurationFactory.createSslConfiguration(util);
+ sslConfiguration = SslConfigurationFactory.getSslConfiguration(util);
assertNotNull(sslConfiguration);
assertNull(sslConfiguration.getKeyStoreConfig());
assertNotNull(sslConfiguration.getTrustStoreConfig());
@@ -66,7 +66,7 @@ public class SslConfigurationFactoryTest {
addKeystoreConfiguration(props);
addTruststoreConfiguration(props);
util.reload();
- sslConfiguration = SslConfigurationFactory.createSslConfiguration(util);
+ sslConfiguration = SslConfigurationFactory.getSslConfiguration(util);
assertNotNull(sslConfiguration);
assertNotNull(sslConfiguration.getKeyStoreConfig());
assertNotNull(sslConfiguration.getTrustStoreConfig());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 08c33868e8..75e1c05295 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -333,7 +333,7 @@ public class ConfigurationSource {
final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
provider.addAuthorization(urlConnection);
if (url.getProtocol().equals(HTTPS)) {
- final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+ final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration(props);
if (sslConfiguration != null) {
((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
if (!sslConfiguration.isVerifyHostName()) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index 727e5cc481..0d7493c356 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -17,6 +17,7 @@
package org.apache.logging.log4j.core.config;
import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
@@ -35,7 +36,6 @@ import org.apache.logging.log4j.plugins.Namespace;
import org.apache.logging.log4j.plugins.Plugin;
import org.apache.logging.log4j.plugins.PluginAliases;
import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertiesUtil;
import org.apache.logging.log4j.util.PropertyEnvironment;
/**
@@ -48,8 +48,9 @@ public class HttpWatcher extends AbstractWatcher {
private final Logger LOGGER = StatusLogger.getLogger();
+ private final PropertyEnvironment properties;
private final SslConfiguration sslConfiguration;
- private AuthorizationProvider authorizationProvider;
+ private final AuthorizationProvider authorizationProvider;
private URL url;
private volatile long lastModifiedMillis;
private static final String HTTP = "http";
@@ -58,7 +59,9 @@ public class HttpWatcher extends AbstractWatcher {
public HttpWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
final List<ConfigurationListener> configurationListeners, final long lastModifiedMillis) {
super(configuration, reconfigurable, configurationListeners);
- sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+ properties = configuration.getContextProperties();
+ sslConfiguration = SslConfigurationFactory.getSslConfiguration(properties);
+ authorizationProvider = AuthorizationProvider.getAuthorizationProvider(properties);
this.lastModifiedMillis = lastModifiedMillis;
}
@@ -80,8 +83,6 @@ public class HttpWatcher extends AbstractWatcher {
}
try {
url = source.getURI().toURL();
- final PropertyEnvironment props = PropertiesUtil.getProperties();
- authorizationProvider = AuthorizationProvider.getAuthorizationProvider(props);
} catch (final MalformedURLException ex) {
throw new IllegalArgumentException("Invalid URL for HttpWatcher " + source.getURI(), ex);
}
@@ -101,7 +102,8 @@ public class HttpWatcher extends AbstractWatcher {
private boolean refreshConfiguration() {
try {
final LastModifiedSource source = new LastModifiedSource(url.toURI(), lastModifiedMillis);
- final HttpInputStreamUtil.Result result = HttpInputStreamUtil.getInputStream(source, authorizationProvider);
+ final HttpInputStreamUtil.Result result = HttpInputStreamUtil.getInputStream(
+ source, properties, authorizationProvider, sslConfiguration);
switch (result.getStatus()) {
case NOT_MODIFIED: {
LOGGER.debug("Configuration Not Modified");
@@ -110,8 +112,11 @@ public class HttpWatcher extends AbstractWatcher {
case SUCCESS: {
final ConfigurationSource configSource = getConfiguration().getConfigurationSource();
try {
- configSource.setData(HttpInputStreamUtil.readStream(result.getInputStream()));
- configSource.setModifiedMillis(source.getLastModified());
+ final InputStream is = result.getInputStream();
+ configSource.setData(is.readAllBytes());
+ final long lastModified = source.getLastModified();
+ configSource.setModifiedMillis(lastModified);
+ lastModifiedMillis = lastModified;
LOGGER.debug("Content was modified for {}", url.toString());
return true;
} catch (final IOException e) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
index 8b63114338..86ca007b8a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
@@ -30,6 +30,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.core.ContextDataInjector;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
@@ -38,7 +39,8 @@ import org.apache.logging.log4j.core.config.ConfigurationException;
import org.apache.logging.log4j.core.config.ConfigurationScheduler;
import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
import org.apache.logging.log4j.core.filter.mutable.KeyValuePairConfig;
-import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
import org.apache.logging.log4j.core.util.AuthorizationProvider;
import org.apache.logging.log4j.core.util.KeyValuePair;
import org.apache.logging.log4j.core.util.internal.HttpInputStreamUtil;
@@ -51,7 +53,6 @@ import org.apache.logging.log4j.plugins.PluginAliases;
import org.apache.logging.log4j.plugins.PluginAttribute;
import org.apache.logging.log4j.plugins.PluginFactory;
import org.apache.logging.log4j.util.PerformanceSensitive;
-import org.apache.logging.log4j.util.PropertiesUtil;
import org.apache.logging.log4j.util.PropertyEnvironment;
/**
@@ -72,6 +73,7 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
private final ConfigurationScheduler scheduler;
private final LastModifiedSource source;
private final AuthorizationProvider authorizationProvider;
+ private final Configuration configuration;
private final List<FilterConfigUpdateListener> listeners = new ArrayList<>();
private ScheduledFuture<?> future = null;
@@ -84,6 +86,7 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
this.source = source;
this.scheduler = configuration.getScheduler();
this.authorizationProvider = authorizationProvider;
+ this.configuration = configuration;
}
@Override
@@ -199,7 +202,7 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
}
public static class Builder extends AbstractFilterBuilder<Builder>
- implements org.apache.logging.log4j.core.util.Builder<MutableThreadContextMapFilter> {
+ implements org.apache.logging.log4j.plugins.util.Builder<MutableThreadContextMapFilter> {
@PluginAttribute
private String configLocation;
@@ -247,16 +250,22 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
return new MutableThreadContextMapFilter(new NoOpFilter(), null, 0,
null, getOnMatch(), getOnMismatch(), configuration);
}
- final PropertyEnvironment props = PropertiesUtil.getProperties();
+ final PropertyEnvironment props = configuration.getContextProperties();
final AuthorizationProvider authorizationProvider =
AuthorizationProvider.getAuthorizationProvider(props);
+ final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration(props);
Filter filter;
if (pollInterval <= 0) {
- final ConfigResult result = getConfig(source, authorizationProvider);
+ final ConfigResult result = getConfig(source, authorizationProvider, props, sslConfiguration);
if (result.status == Status.SUCCESS) {
if (result.pairs.length > 0) {
- filter = ThreadContextMapFilter.createFilter(result.pairs, "or",
- getOnMatch(), getOnMismatch());
+ filter = ThreadContextMapFilter.newBuilder()
+ .setPairs(result.pairs)
+ .setOperator("or")
+ .setOnMatch(getOnMatch())
+ .setOnMismatch(getOnMismatch())
+ .setContextDataInjector(configuration.getComponent(ContextDataInjector.KEY))
+ .get();
} else {
filter = new NoOpFilter();
}
@@ -282,14 +291,16 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
@Override
public void run() {
- final ConfigResult result = getConfig(source, authorizationProvider);
+ final PropertyEnvironment properties = configuration.getContextProperties();
+ final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration(properties);
+ final ConfigResult result = getConfig(source, authorizationProvider, properties, sslConfiguration);
if (result.status == Status.SUCCESS) {
filter = ThreadContextMapFilter.newBuilder()
.setPairs(result.pairs)
.setOperator("or")
.setOnMatch(getOnMatch())
.setOnMismatch(getOnMismatch())
- .setContextDataInjector(ContextDataInjectorFactory.createInjector())
+ .setContextDataInjector(configuration.getComponent(ContextDataInjector.KEY))
.get();
LOGGER.info("Filter configuration was updated: {}", filter.toString());
for (FilterConfigUpdateListener listener : listeners) {
@@ -327,7 +338,9 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
}
private static ConfigResult getConfig(final LastModifiedSource source,
- final AuthorizationProvider authorizationProvider) {
+ final AuthorizationProvider authorizationProvider,
+ final PropertyEnvironment props,
+ final SslConfiguration sslConfiguration) {
final File inputFile = source.getFile();
InputStream inputStream = null;
HttpInputStreamUtil.Result result = null;
@@ -347,7 +360,7 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
}
} else if (source.getURI() != null) {
try {
- result = HttpInputStreamUtil.getInputStream(source, authorizationProvider);
+ result = HttpInputStreamUtil.getInputStream(source, props, authorizationProvider, sslConfiguration);
inputStream = result.getInputStream();
} catch (ConfigurationException ex) {
result = new HttpInputStreamUtil.Result(Status.ERROR);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
index 8248aae9cb..bb5a448086 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
@@ -58,9 +58,10 @@ public class UrlConnectionFactory {
public static final String ALLOWED_PROTOCOLS = "log4j2.Configuration.allowedProtocols";
public static <T extends URLConnection> T createConnection(final URL url, final long lastModifiedMillis,
- final SslConfiguration sslConfiguration, final AuthorizationProvider authorizationProvider)
+ final SslConfiguration sslConfiguration,
+ final AuthorizationProvider authorizationProvider,
+ final PropertyEnvironment props)
throws IOException {
- final PropertyEnvironment props = PropertiesUtil.getProperties();
final List<String> allowed = Arrays.asList(Strings.splitList(toRootLowerCase(props
.getStringProperty(ALLOWED_PROTOCOLS, DEFAULT_ALLOWED_PROTOCOLS))));
if (allowed.size() == 1 && NO_PROTOCOLS.equals(allowed.get(0))) {
@@ -73,7 +74,7 @@ public class UrlConnectionFactory {
if (!allowed.contains(protocol)) {
throw new ProtocolException("Protocol " + protocol + " has not been enabled as an allowed protocol");
}
- URLConnection urlConnection;
+ final URLConnection urlConnection;
if (url.getProtocol().equals(HTTP) || url.getProtocol().equals(HTTPS)) {
final HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
if (authorizationProvider != null) {
@@ -113,11 +114,12 @@ public class UrlConnectionFactory {
}
public static URLConnection createConnection(final URL url) throws IOException {
- URLConnection urlConnection = null;
+ final URLConnection urlConnection;
if (url.getProtocol().equals(HTTPS) || url.getProtocol().equals(HTTP)) {
final PropertyEnvironment props = PropertiesUtil.getProperties();
final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
- urlConnection = createConnection(url, 0, SslConfigurationFactory.getSslConfiguration(), provider);
+ final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration(props);
+ urlConnection = createConnection(url, 0, sslConfiguration, provider, props);
} else {
urlConnection = url.openConnection();
if (urlConnection instanceof JarURLConnection) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
index d7471852a3..cacd929eb3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
@@ -19,8 +19,6 @@ package org.apache.logging.log4j.core.net.ssl;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.PropertiesUtil;
import org.apache.logging.log4j.util.PropertyEnvironment;
/**
@@ -30,12 +28,7 @@ public class SslConfigurationFactory {
private static final Logger LOGGER = StatusLogger.getLogger();
- private static final Lazy<SslConfiguration> SSL_CONFIGURATION = Lazy.lazy(() -> {
- final PropertyEnvironment props = PropertiesUtil.getProperties();
- return createSslConfiguration(props);
- });
-
- static SslConfiguration createSslConfiguration(final PropertyEnvironment props) {
+ public static SslConfiguration getSslConfiguration(final PropertyEnvironment props) {
KeyStoreConfiguration keyStoreConfiguration = null;
TrustStoreConfiguration trustStoreConfiguration = null;
String location = props.getStringProperty(Log4jPropertyKey.TRANSPORT_SECURITY_TRUST_STORE_LOCATION);
@@ -82,7 +75,4 @@ public class SslConfigurationFactory {
return null;
}
- public static SslConfiguration getSslConfiguration() {
- return SSL_CONFIGURATION.value();
- }
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/HttpInputStreamUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/HttpInputStreamUtil.java
index 3046252201..3ba82c4193 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/HttpInputStreamUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/HttpInputStreamUtil.java
@@ -17,7 +17,6 @@
package org.apache.logging.log4j.core.util.internal;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
@@ -25,9 +24,10 @@ import java.net.HttpURLConnection;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.config.ConfigurationException;
import org.apache.logging.log4j.core.net.UrlConnectionFactory;
-import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.core.util.AuthorizationProvider;
import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertyEnvironment;
/**
* Utility method for reading data from an HTTP InputStream.
@@ -39,15 +39,16 @@ public final class HttpInputStreamUtil {
private static final int NOT_AUTHORIZED = 401;
private static final int NOT_FOUND = 404;
private static final int OK = 200;
- private static final int BUF_SIZE = 1024;
public static Result getInputStream(final LastModifiedSource source,
- final AuthorizationProvider authorizationProvider) {
+ final PropertyEnvironment props,
+ final AuthorizationProvider authorizationProvider,
+ final SslConfiguration sslConfiguration) {
final Result result = new Result();
try {
final long lastModified = source.getLastModified();
final HttpURLConnection connection = UrlConnectionFactory.createConnection(source.getURI().toURL(),
- lastModified, SslConfigurationFactory.getSslConfiguration(), authorizationProvider);
+ lastModified, sslConfiguration, authorizationProvider, props);
connection.connect();
try {
final int code = connection.getResponseCode();
@@ -68,12 +69,12 @@ public final class HttpInputStreamUtil {
LOGGER.debug("Content was modified for {}. previous lastModified: {}, new lastModified: {}",
source.toString(), lastModified, connection.getLastModified());
result.status = Status.SUCCESS;
- result.inputStream = new ByteArrayInputStream(readStream(is));
+ result.inputStream = new ByteArrayInputStream(is.readAllBytes());
return result;
} catch (final IOException e) {
try (final InputStream es = connection.getErrorStream()) {
LOGGER.info("Error accessing configuration at {}: {}", source.toString(),
- readStream(es));
+ es.readAllBytes());
} catch (final IOException ioe) {
LOGGER.error("Error accessing configuration at {}: {}", source.toString(),
e.getMessage());
@@ -102,16 +103,6 @@ public final class HttpInputStreamUtil {
}
}
- public static byte[] readStream(final InputStream is) throws IOException {
- final ByteArrayOutputStream result = new ByteArrayOutputStream();
- final byte[] buffer = new byte[BUF_SIZE];
- int length;
- while ((length = is.read(buffer)) != -1) {
- result.write(buffer, 0, length);
- }
- return result.toByteArray();
- }
-
public static class Result {
private InputStream inputStream;
diff --git a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
index e4f03c6efb..d6e68d0bc5 100644
--- a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
+++ b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
@@ -31,7 +31,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Properties;
-import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.AbstractConfiguration;
@@ -230,9 +229,9 @@ public class Log4j2SpringBootLoggingSystem extends Log4J2LoggingSystem {
final PropertyEnvironment props = PropertiesUtil.getProperties();
final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
final SslConfiguration sslConfiguration = url.getProtocol().equals(HTTPS)
- ? SslConfigurationFactory.getSslConfiguration() : null;
+ ? SslConfigurationFactory.getSslConfiguration(props) : null;
final URLConnection urlConnection = UrlConnectionFactory.createConnection(url, 0, sslConfiguration,
- provider);
+ provider, props);
final File file = FileUtils.fileFromUri(url.toURI());
try {
@@ -248,7 +247,7 @@ public class Log4j2SpringBootLoggingSystem extends Log4J2LoggingSystem {
}
private LoggerContext getLoggerContext() {
- return (LoggerContext) LogManager.getContext(false);
+ return LoggerContext.getContext(false);
}
@Order(PRECEDENCE)
[logging-log4j2] 01/05: Move ConfigurationFactory::authorizationProvider to AuthorizationProvider::getAuthorizationProvider
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 4b42577e547fcc3edbb322eeb09c9ff37a6a8bd7
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Oct 15 18:27:12 2023 -0500
Move ConfigurationFactory::authorizationProvider to AuthorizationProvider::getAuthorizationProvider
Signed-off-by: Matt Sicker <ma...@apache.org>
---
.../log4j/core/config/ConfigurationFactory.java | 24 ----------------------
.../log4j/core/config/ConfigurationSource.java | 4 +++-
.../logging/log4j/core/config/HttpWatcher.java | 4 +++-
.../core/filter/MutableThreadContextMapFilter.java | 5 +++--
.../log4j/core/net/UrlConnectionFactory.java | 4 ++--
.../log4j/core/util/AuthorizationProvider.java | 17 +++++++++++++++
.../spring/boot/Log4j2SpringBootLoggingSystem.java | 5 +++--
7 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index f2f9337807..30454eb420 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -22,15 +22,12 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.util.AuthorizationProvider;
-import org.apache.logging.log4j.core.util.BasicAuthorizationProvider;
import org.apache.logging.log4j.plugins.Namespace;
import org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory;
import org.apache.logging.log4j.plugins.di.Key;
import org.apache.logging.log4j.plugins.model.PluginNamespace;
import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.LoaderUtil;
-import org.apache.logging.log4j.util.PropertyEnvironment;
import org.apache.logging.log4j.util.PropertyKey;
/**
@@ -104,27 +101,6 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
*/
private static final String CLASS_PATH_SCHEME = "classpath";
- public static AuthorizationProvider authorizationProvider(final PropertyEnvironment props) {
- final String authClass = props.getStringProperty(Log4jPropertyKey.CONFIG_AUTH_PROVIDER);
- AuthorizationProvider provider = null;
- if (authClass != null) {
- try {
- final Object obj = LoaderUtil.newInstanceOf(authClass);
- if (obj instanceof AuthorizationProvider) {
- provider = (AuthorizationProvider) obj;
- } else {
- LOGGER.warn("{} is not an AuthorizationProvider, using default", obj.getClass().getName());
- }
- } catch (final Exception ex) {
- LOGGER.warn("Unable to create {}, using default: {}", authClass, ex.getMessage());
- }
- }
- if (provider == null) {
- provider = new BasicAuthorizationProvider(props);
- }
- return provider;
- }
-
protected abstract String[] getSupportedTypes();
protected String getTestPrefix() {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 73ee81c508..08c33868e8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -43,6 +43,7 @@ import org.apache.logging.log4j.core.util.Loader;
import org.apache.logging.log4j.core.util.Source;
import org.apache.logging.log4j.util.LoaderUtil;
import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
/**
* Represents the source for the logging configuration.
@@ -328,7 +329,8 @@ public class ConfigurationSource {
final URLConnection urlConnection = url.openConnection();
// A "jar:" URL file remains open after the stream is closed, so do not cache it.
urlConnection.setUseCaches(false);
- final AuthorizationProvider provider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ final PropertyEnvironment props = PropertiesUtil.getProperties();
+ final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
provider.addAuthorization(urlConnection);
if (url.getProtocol().equals(HTTPS)) {
final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index ac42a46994..727e5cc481 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -36,6 +36,7 @@ import org.apache.logging.log4j.plugins.Plugin;
import org.apache.logging.log4j.plugins.PluginAliases;
import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
/**
*
@@ -79,7 +80,8 @@ public class HttpWatcher extends AbstractWatcher {
}
try {
url = source.getURI().toURL();
- authorizationProvider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ final PropertyEnvironment props = PropertiesUtil.getProperties();
+ authorizationProvider = AuthorizationProvider.getAuthorizationProvider(props);
} catch (final MalformedURLException ex) {
throw new IllegalArgumentException("Invalid URL for HttpWatcher " + source.getURI(), ex);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
index 91d8a7f1ae..8b63114338 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
@@ -35,7 +35,6 @@ import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationException;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationScheduler;
import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
import org.apache.logging.log4j.core.filter.mutable.KeyValuePairConfig;
@@ -53,6 +52,7 @@ import org.apache.logging.log4j.plugins.PluginAttribute;
import org.apache.logging.log4j.plugins.PluginFactory;
import org.apache.logging.log4j.util.PerformanceSensitive;
import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
/**
* Filter based on a value in the Thread Context Map (MDC).
@@ -247,8 +247,9 @@ public final class MutableThreadContextMapFilter extends AbstractFilter {
return new MutableThreadContextMapFilter(new NoOpFilter(), null, 0,
null, getOnMatch(), getOnMismatch(), configuration);
}
+ final PropertyEnvironment props = PropertiesUtil.getProperties();
final AuthorizationProvider authorizationProvider =
- ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ AuthorizationProvider.getAuthorizationProvider(props);
Filter filter;
if (pollInterval <= 0) {
final ConfigResult result = getConfig(source, authorizationProvider);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
index 79e3f5c00a..8248aae9cb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
@@ -27,7 +27,6 @@ import java.util.List;
import javax.net.ssl.HttpsURLConnection;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
@@ -116,7 +115,8 @@ public class UrlConnectionFactory {
public static URLConnection createConnection(final URL url) throws IOException {
URLConnection urlConnection = null;
if (url.getProtocol().equals(HTTPS) || url.getProtocol().equals(HTTP)) {
- final AuthorizationProvider provider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ final PropertyEnvironment props = PropertiesUtil.getProperties();
+ final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
urlConnection = createConnection(url, 0, SslConfigurationFactory.getSslConfiguration(), provider);
} else {
urlConnection = url.openConnection();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java
index 9075254f7b..f1f27823c6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java
@@ -18,10 +18,27 @@ package org.apache.logging.log4j.core.util;
import java.net.URLConnection;
+import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+
/**
* Interface to be implemented to add an Authorization header to an HTTP request.
*/
public interface AuthorizationProvider {
void addAuthorization(URLConnection urlConnection);
+
+ static AuthorizationProvider getAuthorizationProvider(final PropertyEnvironment properties) {
+ final String authClass = properties.getStringProperty(Log4jPropertyKey.CONFIG_AUTH_PROVIDER);
+ if (authClass != null) {
+ try {
+ return LoaderUtil.newInstanceOfUnchecked(authClass, AuthorizationProvider.class);
+ } catch (final RuntimeException | LinkageError e) {
+ StatusLogger.getLogger().warn("Unable to create {}, using default", authClass, e);
+ }
+ }
+ return new BasicAuthorizationProvider(properties);
+ }
}
diff --git a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
index 7d5d523f26..e4f03c6efb 100644
--- a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
+++ b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
@@ -36,7 +36,6 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.AbstractConfiguration;
import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.composite.CompositeConfiguration;
import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
@@ -47,6 +46,7 @@ import org.apache.logging.log4j.core.util.AuthorizationProvider;
import org.apache.logging.log4j.core.util.FileUtils;
import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
import org.springframework.boot.logging.LogFile;
import org.springframework.boot.logging.LoggingInitializationContext;
import org.springframework.boot.logging.LoggingSystem;
@@ -227,7 +227,8 @@ public class Log4j2SpringBootLoggingSystem extends Log4J2LoggingSystem {
}
private ConfigurationSource getConfigurationSource(final URL url) throws IOException, URISyntaxException {
- final AuthorizationProvider provider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ final PropertyEnvironment props = PropertiesUtil.getProperties();
+ final AuthorizationProvider provider = AuthorizationProvider.getAuthorizationProvider(props);
final SslConfiguration sslConfiguration = url.getProtocol().equals(HTTPS)
? SslConfigurationFactory.getSslConfiguration() : null;
final URLConnection urlConnection = UrlConnectionFactory.createConnection(url, 0, sslConfiguration,