Skip to content

HADOOP-19952. Support Single EKU; Load client keystore when ssl.clien… - #8655

Open
riya2305 wants to merge 3 commits into
apache:trunkfrom
riya2305:QI-6008-single-eku-client-keystore
Open

HADOOP-19952. Support Single EKU; Load client keystore when ssl.clien…#8655
riya2305 wants to merge 3 commits into
apache:trunkfrom
riya2305:QI-6008-single-eku-client-keystore

Conversation

@riya2305

@riya2305 riya2305 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

…t.keystore.location is set

Description of PR

FileBasedKeyStoresFactory ignores ssl.client.keystore.* in CLIENT mode unless
hadoop.ssl.require.client.cert=true (default: false). This breaks Single EKU
deployments that configure a dedicated clientAuth keystore in ssl-client.xml
outbound mTLS connections silently send no client certificate.
This patch loads the keystore when ssl.client.keystore.location is set and the
file exists, without requiring the legacy flag. Unset/missing keystore behavior
is unchanged.

How was this patch tested?

For code changes:

  • Does the title of this PR start with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: Have the integration tests been executed and the endpoint
    declared according to the connector-specific documentation? Note: Automated CI
    testing doesn't cover all cases so manual testing with cloud storage is still
    required.
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

AI Tooling

If an AI tool was used:

@riya2305
riya2305 force-pushed the QI-6008-single-eku-client-keystore branch from 4bfa660 to 0a8b209 Compare August 4, 2026 06:34
@K0K0V0K

K0K0V0K commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Hey @riya2305 !

Thanks for this improvement!
May i ask you to fill the How was this patch tested? part on the PR description also?

String keystoreLocationProperty =
resolvePropertyName(mode, SSL_KEYSTORE_LOCATION_TPL_KEY);
String keystoreLocation = conf.get(keystoreLocationProperty, "");
boolean keystoreFilePresent = !keystoreLocation.isEmpty()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe a Warning log would be nice if file not found, but configured.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants