Skip to content

Align SslConfiguration factory method usage with Log4j 2.12+ API#4075

Merged
ppkarwasz merged 10 commits into2.25.xfrom
fix/2.25.x/ssl-connection
Mar 25, 2026
Merged

Align SslConfiguration factory method usage with Log4j 2.12+ API#4075
ppkarwasz merged 10 commits into2.25.xfrom
fix/2.25.x/ssl-connection

Conversation

@ppkarwasz
Copy link
Copy Markdown
Contributor

This change updates the usage of SslConfiguration#createSSLConfiguration to the 4-parameter factory method introduced in Log4j 2.12.0.

Using the newer factory method keeps the code aligned with the current API and ensures that all configuration parameters supported by recent Log4j versions are correctly propagated during SSL configuration creation.

Fixes #4061

This change updates the usage of `SslConfiguration#createSSLConfiguration` to the 4-parameter factory method introduced in Log4j 2.12.0.

Using the newer factory method keeps the code aligned with the current API and ensures that all configuration parameters supported by recent Log4j versions are correctly propagated during SSL configuration creation.

Fixes #4061
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Log4j Core’s SslConfiguration plugin factory wiring to ensure the verifyHostName attribute is recognized (aligning with the newer 4-parameter createSSLConfiguration factory), and adds tests/resources to validate hostname verification behavior.

Changes:

  • Move @PluginFactory to the 4-parameter SslConfiguration#createSSLConfiguration(...) and deprecate the legacy 3-parameter overload.
  • Add test coverage verifying verifyHostName is recognized via plugin metadata and exercised via a TLS socket appender integration test.
  • Add BouncyCastle test dependency to generate test certificates/keystores.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/changelog/.2.x.x/4061_ssl-connection.xml Changelog entry for the fix.
log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java Adjusts plugin factory method and deprecates old overload.
log4j-core-test/src/test/resources/TlsSocketAppenderTest/log4j2.xml Adds TLS SocketAppender config exercising verifyHostName.
log4j-core-test/src/test/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationTest.java Adds a plugin-metadata-based test asserting verifyHostName is applied.
log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/X509Certificates.java Test utility to generate X.509 material (via BouncyCastle).
log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/TlsSocketAppenderTest.java New integration-style tests for hostname verification behavior.
log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/LineReadingTcpServer.java Adds bind-address configurability to support new TLS tests.
log4j-core-test/pom.xml Adds BouncyCastle test dependency/version management.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vy vy added the enhancement Additions or updates to features label Mar 24, 2026
@vy vy added this to the 2.26.0 milestone Mar 24, 2026
@vy
Copy link
Copy Markdown
Member

vy commented Mar 24, 2026

@ppkarwasz, I presume this enhancement will be shipped in 2.26.0, not 2.25.4, right?

@vy
Copy link
Copy Markdown
Member

vy commented Mar 24, 2026

@ppkarwasz, I presume this enhancement will be shipped in 2.26.0, not 2.25.4, right?

Nevermind. This indeed fixes a bug.

@vy vy added bug Incorrect, unexpected, or unintended behavior of existing code configuration Affects the configuration system in a general way and removed enhancement Additions or updates to features labels Mar 24, 2026
@vy vy modified the milestones: 2.26.0, 2.25.4 Mar 24, 2026
Copy link
Copy Markdown

@FreeAndNil FreeAndNil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one nit from me.

If a host does not resolve `*.localhost` to the loopback device as recommended by RFC 6761, there is no real way to test certificate validation.
@ppkarwasz ppkarwasz merged commit 3b1e54c into 2.25.x Mar 25, 2026
7 checks passed
@ppkarwasz ppkarwasz deleted the fix/2.25.x/ssl-connection branch March 25, 2026 06:03
@github-project-automation github-project-automation bot moved this from Approved to Merged in Log4j pull request tracker Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Incorrect, unexpected, or unintended behavior of existing code configuration Affects the configuration system in a general way

Projects

Development

Successfully merging this pull request may close these issues.

ComponentBuilder fails to recognize verifyHostName attribute in Ssl component (Log4j 2.25.3)

4 participants