GEODE-10563: Testcases for Server-Only TLS with Application-Layer Authentication#7987
Open
JinwooHwang wants to merge 1 commit intoapache:developfrom
Open
GEODE-10563: Testcases for Server-Only TLS with Application-Layer Authentication#7987JinwooHwang wants to merge 1 commit intoapache:developfrom
JinwooHwang wants to merge 1 commit intoapache:developfrom
Conversation
Contributor
Author
|
Thank you very much @marinov-code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR introduces comprehensive test coverage for Server-Only TLS with Application-Layer Authentication , which addresses the upcoming public CA clientAuth EKU sunset problem in Apache Geode.
Problem Statement
Public Certificate Authorities are sunsetting support for the
clientAuthExtended Key Usage (EKU) in publicly-issued certificates. This creates a significant challenge for Geode deployments using mutual TLS, as:clientAuthEKUSolution: Server-Only TLS with Application-Layer Authentication
This approach eliminates the need for client certificates while maintaining:
serverAuthEKU required)Key Configuration
Changes in This PR
1. Test Infrastructure (
ServerOnlyTLSTestFixture.java)New test fixture providing:
2. Client-Server Tests (
ServerOnlyTLSWithAuthDUnitTest.java)Comprehensive positive test coverage for:
Test Results: All tests passing ✓
3. P2P Cluster Tests (
P2PServerOnlyTLSWithAuthDUnitTest.java)Validates peer-to-peer topology with server-only TLS:
CLUSTER:MANAGEpermissionTest Results: All tests passing ✓
4. Negative Tests (
ServerOnlyTLSWithAuthNegativeTest.java)Security validation tests ensuring:
Test Results: All security violations properly detected ✓
5. Token Authentication Support (
TokenAuthInit.java)New authentication initializer for bearer token support:
AuthInitializefor token-based authenticationTest Coverage Summary
ServerOnlyTLSWithAuthDUnitTestP2PServerOnlyTLSWithAuthDUnitTestServerOnlyTLSWithAuthNegativeTestKey Findings
Proven Capabilities
Performance
Security Considerations
Migration Path
Clusters can migrate from mutual TLS to server-only TLS by:
ssl-require-authentication=falsesecurity-managerfor authenticationserverAuthEKU (compatible with public CAs)Files Changed
Total: 5 new files, 0 modifications
Testing
All tests pass successfully:
./gradlew :geode-core:distributedTest --tests "*ServerOnlyTLSWithAuth*" --max-workers=1Related Issues
Checklist
Next Steps
After this PR is merged:
This PR provides the test foundation proving that Server-Only TLS with Application-Layer Authentication is a viable alternative to mutual TLS for addressing the public CA clientAuth EKU sunset.
For all changes, please confirm:
develop)?gradlew buildrun cleanly?For all changes, please confirm:
develop)?gradlew buildrun cleanly?