grpc / grpc/grpc-java

Support for TLS/plaintext Port Unification

Offen
#9,002 11 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

### Is your feature request related to a problem?

While trying to work with TLS, I was scanning through the current server setup. The NettyServerBuilder configures the port to be TLS or plaintext based on the presence or absence of `SslContext`, correspondingly.
https://github.com/grpc/grpc-java/blob/012dbaf5be3fb0d532d977d288a0e42a58f30a7c/netty/src/main/java/io/grpc/netty/NettyServerBuilder.java#L352-L364

Resulting in a very little flexibility for the users to customize the port. Specifically, I was trying to see if we can accept both TLS & non-TLS connections on the same port without the need for creating a duplicate port. Netty demonstrates this through the [doc](https://netty.io/4.1/xref/io/netty/example/portunification/PortUnificationServerHandler.html#PortUnificationServerHandler).

### Describe the solution you'd like

**Approach1**
Explicit public interface in `NettyServerBuilder` for enabling/disabling/multiplexing TLS.
We could follow a [similar approach](https://netty.io/4.1/xref/io/netty/example/portunification/PortUnificationServerHandler.html#PortUnificationServerHandler) of spiffing the initial bytes & dynamically configuring TLS.

**Approach2**
A public interface for adding child handlers to customize the connections.
https://github.com/grpc/grpc-java/blob/012dbaf5be3fb0d532d977d288a0e42a58f30a7c/netty/src/main/java/io/grpc/netty/NettyServer.java#L228

### Additional context

Relevant thread in stackoverflow:
https://stackoverflow.com/questions/71484231/port-unification-in-grpc-java

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.