Add setEnabledCipherSuites option to OTLP exporter builders - #8858
raheelshahzad wants to merge 1 commit into
Conversation
|
|
|
Pull request dashboard statusWaiting on the author · refreshed 2026-09-24 21:33 UTC Respond to 1 review item (e.g. link a commit, explain why not, ask a follow-up):
Status above doesn't look right?
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8858 +/- ##
============================================
- Coverage 91.44% 91.44% -0.01%
- Complexity 10667 10702 +35
============================================
Files 1007 1007
Lines 28686 28740 +54
Branches 3676 3695 +19
============================================
+ Hits 26233 26282 +49
- Misses 1657 1658 +1
- Partials 796 800 +4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
/easycla |
32869c2 to
1a3bcb7
Compare
Allow callers to restrict the TLS cipher suites used by the OTLP HTTP and gRPC exporters without changing JVM-wide security properties. Mirrors the structure of setEnabledProtocols (open-telemetry#8610): the value flows through HttpSenderConfig / GrpcSenderConfig to the JDK sender (SSLParameters.setCipherSuites) and the OkHttp senders (ConnectionSpec.Builder.cipherSuites). When both protocols and cipher suites are set they now share a single SSLParameters / ConnectionSpec. The upstream gRPC managed-channel sender is unchanged, as for protocols. Refs open-telemetry#8558
1a3bcb7 to
ddb54b5
Compare
|
I was working on this last week and concluded that we need I hadn't opened a PR yet in an attempt to limit WIP. Setting cipher suites may have utility, but I dont think it solves the mentioned issue. |
Resolves #8558 via the standalone-setter approach suggested there, instead of a generic
SSLParameterssetter.What
Adds
setEnabledCipherSuites(List<String>)to the OTLP exporter builders (HTTP and gRPC; traces, metrics, logs, profiles), mirroringsetEnabledProtocolsfrom #8610 file for file:HttpSenderConfig/GrpcSenderConfiggain a nullablegetEnabledCipherSuites()default method.JdkHttpSenderapplies it viaSSLParameters.setCipherSuites.OkHttpHttpSender/OkHttpGrpcSenderapply it viaConnectionSpec.Builder.cipherSuites.SSLParameters/ConnectionSpecrather than the second overwriting the first.Cipher suite names follow the JSSE convention (
TLS_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, ...). Null and empty lists are rejected at the public builder boundary.Testing
AbstractHttpTelemetryExporterTest/AbstractGrpcTelemetryExporterTest: positive export with an explicit cipher suite list, and a negative case restricting the client to an ECDSA-only suite against the RSA test server, which fails the handshake as expected. The negative case is skipped forUpstreamGrpcSenderProvider, matching the protocols test.toStringcoverage extended alongside the protocols assertions.JdkHttpSenderTest: asserts protocols and cipher suites both land on the builtHttpClient'sSSLParameters../gradlew checkpasses on:sdk:common,:exporters:otlp:all,:exporters:otlp:profiles,:exporters:otlp:testing-internal,:exporters:sender:jdk,:exporters:sender:okhttp. API diff files regenerated.🤖 Generated with Claude Code