Skip to content

Commit 2a45658

Browse files
Reload key and certs in SockerAppender reconnector
Signed-off-by: MichaelMorris <michael.morris@est.tech>
1 parent 29445d1 commit 2a45658

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed

log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ private static SslConfiguration createTestSslConfigurationFiles() throws StoreCo
5757
return SslConfiguration.createSSLConfiguration(null, ksc, tsc);
5858
}
5959

60+
@Test
61+
void testCreateSslSocketFactory() throws StoreConfigurationException {
62+
assertNotNull(createTestSslConfigurationFiles().createSslSocketFactory());
63+
}
64+
6065
@Test
6166
void testGettersFromScratchFiles() throws StoreConfigurationException {
6267
assertNotNull(createTestSslConfigurationFiles().getProtocol());

log4j-core/src/main/java/org/apache/logging/log4j/core/net/SslSocketManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ private static SSLSocketFactory createSslSocketFactory(final SslConfiguration ss
234234
SSLSocketFactory socketFactory;
235235

236236
if (sslConf != null) {
237-
socketFactory = sslConf.getSslSocketFactory();
237+
socketFactory = sslConf.createSslSocketFactory();
238238
} else {
239239
socketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
240240
}

log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*/
3434
public class AbstractKeyStoreConfiguration extends StoreConfiguration<KeyStore> {
3535

36-
private final KeyStore keyStore;
36+
private KeyStore keyStore;
3737
private final String keyStoreType;
3838

3939
public AbstractKeyStoreConfiguration(
@@ -44,6 +44,10 @@ public AbstractKeyStoreConfiguration(
4444
this.keyStore = this.load();
4545
}
4646

47+
public void reload() throws StoreConfigurationException {
48+
this.keyStore = this.load();
49+
}
50+
4751
/**
4852
* @deprecated Use {@link #AbstractKeyStoreConfiguration(String, PasswordProvider, String)} instead
4953
*/

log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class SslConfiguration {
4343
private static final StatusLogger LOGGER = StatusLogger.getLogger();
4444
private final KeyStoreConfiguration keyStoreConfig;
4545
private final TrustStoreConfiguration trustStoreConfig;
46-
private final SSLContext sslContext;
46+
private SSLContext sslContext;
4747
private final String protocol;
4848
private final boolean verifyHostName;
4949

@@ -71,6 +71,17 @@ public void clearSecrets() {
7171
}
7272
}
7373

74+
public SSLSocketFactory createSslSocketFactory() {
75+
try {
76+
keyStoreConfig.reload();
77+
trustStoreConfig.reload();
78+
} catch (StoreConfigurationException e) {
79+
LOGGER.debug("Exception occurred reloading SSL configuration. Previously read data will be used", e);
80+
}
81+
sslContext = createSslContext();
82+
return sslContext.getSocketFactory();
83+
}
84+
7485
public SSLSocketFactory getSslSocketFactory() {
7586
return sslContext.getSocketFactory();
7687
}

log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* Log4j 2 SSL support
1919
*/
2020
@Export
21-
@Version("2.20.2")
21+
@Version("2.21.0")
2222
package org.apache.logging.log4j.core.net.ssl;
2323

2424
import org.osgi.annotation.bundle.Export;

0 commit comments

Comments
 (0)