apache / apache/gravitino

[Subtask] M4: Convenience helpers for common TLS setups

Open
#12,302 0 comments 0 reactions 0 assignees View on GitHub
subtask
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 16h
Merged PRs (30d)
298

Description

### Describe the subtask

The ergonomics milestone. After M3, every journey is possible; this makes the
common ones short. A user configuring the standard cases — trust an internal CA,
present a client certificate — should not need to know what an `SSLContext` is.

## Deliverable

Helper methods on the configurer factory for the common paths, so the typical
call site shrinks to one line per concern (a truststore, a keystore) with
sensible defaults for everything else — store type, hostname verification,
context algorithm.

The discipline: every helper must map to a journey named in the design doc.
Convenience surface is still public surface — we maintain it forever — so no
speculative methods "while we're in there." If a helper seems useful but has no
CUJ behind it, that's a design-doc amendment first.

## Acceptance criteria

- [ ] The private-CA and mutual-TLS journeys are expressible without touching
`SSLContext`, `KeyStore`, or any JSSE type directly
- [ ] Every helper corresponds to a CUJ in the design doc
- [ ] Docs examples updated to the shortened form
- [ ] Tests for each helper, including failure messages on bad input

Depends on: M3.

### Parent issue

#9836

Contributor guide

Open the contributing guide

Research direction

Start with the M3 implementation and the design doc's named private-CA and mutual-TLS journeys, then locate the configurer factory. Verify which helpers and defaults those journeys require, update the docs examples, and add tests for each helper, including bad-input failure messages. Done means both journeys avoid direct JSSE types and every helper maps to a documented CUJ.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.