apache / apache/fluss

[TLS] Add SSL config parsing and SslContext/SslHandler factory

Open
#3,796 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.

### Description

Part of #3786 ([FIP-29: (m)TLS Support](https://cwiki.apache.org/confluence/spaces/FLUSS/pages/406620533/FIP-29+m+TLS+Support)).

**Wave 0** — no dependencies, can start immediately.

Add the foundational, currently-unused building blocks that later tickets wire into the Netty pipeline — no runtime behavior change on their own.

- `SslConfig` — parses keystore/truststore paths, passwords, type (JKS/PKCS12), enabled protocols, cipher suites from `Configuration`.
- `SslContextFactory` — builds a Netty `SslContext`/`SslHandler` from an `SslConfig`, for both server and client sides.
- New config options: `security.ssl.enabled.listeners`, `security.ssl.enabled.protocols`, `security.ssl.cipher.suites`, `security.ssl.keystore.*`, `security.ssl.key.password`, `security.ssl.truststore.*`, and the `client.security.ssl.*` mirror.
- Unit tests covering keystore/truststore loading, protocol/cipher restriction, and hostname-verification setup.

**Depends on:** none.
**Depended on by:** server pipeline integration (#3792), client pipeline integration (#3797), certificate hot-reload (#3799).

_Estimated diff size: ~925 lines._

### Willingness to contribute

- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Read FIP-29 and the existing Configuration patterns first, then trace how Netty pipeline integration is organized. Implement the unused SslConfig and SslContextFactory building blocks with the listed server and client options. Done means unit tests cover keystore/truststore loading, protocol and cipher restrictions, and hostname verification without changing runtime behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.