From 64d015e63b6cd37224486a29f121711a65702077 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 06:17:13 +0530 Subject: [PATCH 1/7] Add helper for platform default trust manager --- .../exporter/internal/TlsUtil.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java index 500bc9978c1..a1280e1963c 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java @@ -95,7 +95,28 @@ public static X509KeyManager keyManager(byte[] privateKeyPem, byte[] certificate throw new SSLException("Could not build KeyManagerFactory from clientKeysPem.", e); } } + /** + * Returns the platform default {@link X509TrustManager}. + */ + public static X509TrustManager defaultTrustManager() throws SSLException { + try { + TrustManagerFactory tmf = + TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + // Initialize with the platform default trust store. + tmf.init((KeyStore) null); + + for (TrustManager trustManager : tmf.getTrustManagers()) { + if (trustManager instanceof X509TrustManager) { + return (X509TrustManager) trustManager; + } + } + + throw new SSLException("No X509TrustManager found"); + } catch (KeyStoreException | NoSuchAlgorithmException e) { + throw new SSLException("Could not build default TrustManager.", e); + } + } // Visible for testing static PrivateKey generatePrivateKey(PKCS8EncodedKeySpec keySpec, List keyFactories) throws SSLException { From ea96f60ec25de26133b74340ce371cebdbe84946 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 06:17:48 +0530 Subject: [PATCH 2/7] Prepare TLS config for default trust manager --- .../exporter/internal/TlsConfigHelper.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java index 5c2f89e9372..ccc3288c60d 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java @@ -111,6 +111,23 @@ public X509TrustManager getTrustManager() { return trustManager; } + @Nullable + public X509TrustManager getEffectiveTrustManager() { + if (trustManager != null) { + return trustManager; + } + + if (sslContext != null) { + return null; + } + + try { + return TlsUtil.defaultTrustManager(); + } catch (SSLException e) { + throw new IllegalArgumentException(e); + } + } + /** Get the {@link SSLContext}. */ @Nullable public SSLContext getSslContext() { @@ -122,7 +139,7 @@ public SSLContext getSslContext() { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init( keyManager == null ? null : new KeyManager[] {keyManager}, - trustManager == null ? null : new TrustManager[] {trustManager}, + new TrustManager[] {getEffectiveTrustManager()}, null); return sslContext; } catch (NoSuchAlgorithmException | KeyManagementException e) { From c0a6159aa436a581ea7ead0973a8d8ed0b2abdd1 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 06:18:19 +0530 Subject: [PATCH 3/7] Fix client mTLS with default system trust --- .../okhttp/internal/OkHttpHttpSender.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java index 19026e7691f..f084d2d497f 100644 --- a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java +++ b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java @@ -7,6 +7,8 @@ import io.opentelemetry.api.impl.InstrumentationUtil; import io.opentelemetry.exporter.internal.RetryUtil; +import io.opentelemetry.exporter.internal.TlsUtil; +import javax.net.ssl.SSLException; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.common.export.Compressor; import io.opentelemetry.sdk.common.export.HttpResponse; @@ -108,8 +110,19 @@ public OkHttpHttpSender( boolean isPlainHttp = endpoint.getScheme().equals("http"); if (isPlainHttp) { builder.connectionSpecs(Collections.singletonList(ConnectionSpec.CLEARTEXT)); - } else if (sslContext != null && trustManager != null) { - builder.sslSocketFactory(sslContext.getSocketFactory(), trustManager); + } else if (sslContext != null) { + X509TrustManager effectiveTrustManager = trustManager; + + if (effectiveTrustManager == null) { + try { + effectiveTrustManager = TlsUtil.defaultTrustManager(); + } catch (SSLException e) { + throw new IllegalStateException("Unable to initialize default trust manager", e); + } + } + builder.sslSocketFactory( + sslContext.getSocketFactory(), + effectiveTrustManager); } this.client = builder.build(); From 1f4e437c071b50ccf7373d28052bd2f56b1a8240 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 06:22:09 +0530 Subject: [PATCH 4/7] Updated CHANGELOG.md # Conflicts: # exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java --- CHANGELOG.md | 6 ++++++ .../java/io/opentelemetry/exporter/internal/TlsUtil.java | 6 +++--- .../exporter/sender/okhttp/internal/OkHttpHttpSender.java | 6 ++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c399e74acfa..344ddc4a497 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## Unreleased +### SDK + +#### Exporters + +* OTLP: Fix OkHttp HTTP sender dropping client certificates when client TLS is configured without custom trusted certificates. + ## Version 1.63.0 (2026-06-05) ### API diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java index a1280e1963c..d3ff542a1e2 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsUtil.java @@ -95,9 +95,8 @@ public static X509KeyManager keyManager(byte[] privateKeyPem, byte[] certificate throw new SSLException("Could not build KeyManagerFactory from clientKeysPem.", e); } } - /** - * Returns the platform default {@link X509TrustManager}. - */ + + /** Returns the platform default {@link X509TrustManager}. */ public static X509TrustManager defaultTrustManager() throws SSLException { try { TrustManagerFactory tmf = @@ -117,6 +116,7 @@ public static X509TrustManager defaultTrustManager() throws SSLException { throw new SSLException("Could not build default TrustManager.", e); } } + // Visible for testing static PrivateKey generatePrivateKey(PKCS8EncodedKeySpec keySpec, List keyFactories) throws SSLException { diff --git a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java index f084d2d497f..5a60eb58a73 100644 --- a/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java +++ b/exporters/sender/okhttp/src/main/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSender.java @@ -8,7 +8,6 @@ import io.opentelemetry.api.impl.InstrumentationUtil; import io.opentelemetry.exporter.internal.RetryUtil; import io.opentelemetry.exporter.internal.TlsUtil; -import javax.net.ssl.SSLException; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.common.export.Compressor; import io.opentelemetry.sdk.common.export.HttpResponse; @@ -30,6 +29,7 @@ import java.util.logging.Logger; import javax.annotation.Nullable; import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLException; import javax.net.ssl.X509TrustManager; import okhttp3.Call; import okhttp3.Callback; @@ -120,9 +120,7 @@ public OkHttpHttpSender( throw new IllegalStateException("Unable to initialize default trust manager", e); } } - builder.sslSocketFactory( - sslContext.getSocketFactory(), - effectiveTrustManager); + builder.sslSocketFactory(sslContext.getSocketFactory(), effectiveTrustManager); } this.client = builder.build(); From dbc453f5f25ba03c8335eca575973def4c470fb8 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 11:48:55 +0530 Subject: [PATCH 5/7] Added Tests for the previous Implementation --- .../internal/TlsConfigHelperTest.java | 26 +++++++++++++++++++ .../exporter/internal/TlsUtilTest.java | 5 ++++ .../okhttp/internal/OkHttpHttpSenderTest.java | 24 +++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java index 83736d5eb06..534f092ef91 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java @@ -94,4 +94,30 @@ void setSslContext_AlreadyExists_Throws() throws Exception { .isInstanceOf(IllegalStateException.class) .hasMessageContaining("sslContext or trustManager has been previously configured"); } + + @Test + void getEffectiveTrustManager_returnsConfiguredTrustManager() + throws CertificateEncodingException { + helper.setTrustManagerFromCerts(serverTls.certificate().getEncoded()); + + assertThat(helper.getEffectiveTrustManager()).isSameAs(helper.getTrustManager()); + } + + @Test + void getEffectiveTrustManager_returnsDefaultTrustManager() { + assertThat(helper.getEffectiveTrustManager()).isNotNull(); + } + + @Test + void getEffectiveTrustManager_returnsNullWhenSslContextConfigured() throws Exception { + helper.setSslContext( + SSLContext.getInstance("TLS"), TlsUtil.trustManager(serverTls.certificate().getEncoded())); + + assertThat(helper.getEffectiveTrustManager()).isNull(); + } + + @Test + void getSslContext_usesDefaultTrustManagerWhenUnset() { + assertThat(helper.getSslContext()).isNotNull(); + } } diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java index 1d25cc6cf9d..ce612d6aabc 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java @@ -79,6 +79,11 @@ void generatePrivateKey_Invalid() { .hasMessage("Unable to generate key from supported algorithms: [EC]"); } + @Test + void defaultTrustManager() { + assertThatCode(TlsUtil::defaultTrustManager).doesNotThrowAnyException(); + } + /** * Append explanatory text * prefix and verify {@link TlsUtil#keyManager(byte[], byte[])} succeeds. diff --git a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java index a74695df9af..f886a2ac000 100644 --- a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java +++ b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java @@ -17,6 +17,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; +import javax.net.ssl.SSLContext; import org.junit.jupiter.api.Test; class OkHttpHttpSenderTest { @@ -60,4 +61,27 @@ public int getContentLength() { return 0; } } + + @Test + void constructor_usesDefaultTrustManagerWhenTrustManagerIsNull() throws Exception { + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, null, null); + + OkHttpHttpSender sender = + new OkHttpHttpSender( + URI.create("https://localhost"), + "text/plain", + null, + Duration.ofSeconds(10), + Duration.ofSeconds(10), + Collections::emptyMap, + null, + null, + sslContext, + null, + null, + Long.MAX_VALUE); + + assertThat(sender).isNotNull(); + } } From b6f5f6b22a999498270369b4c603349e1d3271ae Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Fri, 3 Jul 2026 11:56:25 +0530 Subject: [PATCH 6/7] removed SSL context Dead Code --- .../exporter/internal/TlsConfigHelper.java | 15 ++------ .../internal/TlsConfigHelperTest.java | 22 ++++++++--- .../exporter/internal/TlsUtilTest.java | 20 ++++++++++ .../okhttp/internal/OkHttpHttpSenderTest.java | 37 +++++++++++++++++++ 4 files changed, 76 insertions(+), 18 deletions(-) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java index ccc3288c60d..ec29bbdced6 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java @@ -112,20 +112,11 @@ public X509TrustManager getTrustManager() { } @Nullable - public X509TrustManager getEffectiveTrustManager() { + public X509TrustManager getEffectiveTrustManager() throws SSLException { if (trustManager != null) { return trustManager; } - - if (sslContext != null) { - return null; - } - - try { - return TlsUtil.defaultTrustManager(); - } catch (SSLException e) { - throw new IllegalArgumentException(e); - } + return TlsUtil.defaultTrustManager(); } /** Get the {@link SSLContext}. */ @@ -142,7 +133,7 @@ public SSLContext getSslContext() { new TrustManager[] {getEffectiveTrustManager()}, null); return sslContext; - } catch (NoSuchAlgorithmException | KeyManagementException e) { + } catch (NoSuchAlgorithmException | KeyManagementException | SSLException e) { throw new IllegalArgumentException(e); } } diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java index 534f092ef91..6cf2ad0e1e9 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java @@ -10,8 +10,10 @@ import com.linecorp.armeria.testing.junit5.server.SelfSignedCertificateExtension; import io.opentelemetry.internal.testing.slf4j.SuppressLogger; +import java.security.Security; import java.security.cert.CertificateEncodingException; import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLException; import javax.net.ssl.X509TrustManager; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -97,23 +99,31 @@ void setSslContext_AlreadyExists_Throws() throws Exception { @Test void getEffectiveTrustManager_returnsConfiguredTrustManager() - throws CertificateEncodingException { + throws CertificateEncodingException, SSLException { helper.setTrustManagerFromCerts(serverTls.certificate().getEncoded()); assertThat(helper.getEffectiveTrustManager()).isSameAs(helper.getTrustManager()); } @Test - void getEffectiveTrustManager_returnsDefaultTrustManager() { + void getEffectiveTrustManager_returnsDefaultTrustManager() throws SSLException { assertThat(helper.getEffectiveTrustManager()).isNotNull(); } @Test - void getEffectiveTrustManager_returnsNullWhenSslContextConfigured() throws Exception { - helper.setSslContext( - SSLContext.getInstance("TLS"), TlsUtil.trustManager(serverTls.certificate().getEncoded())); + void getSslContext_wrapsDefaultTrustManagerFailure() { + String originalAlgorithm = Security.getProperty("ssl.TrustManagerFactory.algorithm"); + + try { + Security.setProperty("ssl.TrustManagerFactory.algorithm", "invalid"); + + assertThatThrownBy(() -> helper.getSslContext()) + .isInstanceOf(IllegalArgumentException.class) + .hasCauseInstanceOf(SSLException.class); - assertThat(helper.getEffectiveTrustManager()).isNull(); + } finally { + Security.setProperty("ssl.TrustManagerFactory.algorithm", originalAlgorithm); + } } @Test diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java index ce612d6aabc..00a3a5c8fc1 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsUtilTest.java @@ -6,6 +6,7 @@ package io.opentelemetry.exporter.internal; import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import com.linecorp.armeria.internal.common.util.SelfSignedCertificate; import java.io.File; @@ -15,6 +16,8 @@ import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.Security; import java.security.cert.CertificateException; import java.security.spec.PKCS8EncodedKeySpec; import java.time.Instant; @@ -84,6 +87,23 @@ void defaultTrustManager() { assertThatCode(TlsUtil::defaultTrustManager).doesNotThrowAnyException(); } + @Test + void defaultTrustManager_NoSuchAlgorithmException() { + String originalAlgorithm = Security.getProperty("ssl.TrustManagerFactory.algorithm"); + + try { + Security.setProperty("ssl.TrustManagerFactory.algorithm", "invalid-algorithm"); + + assertThatThrownBy(TlsUtil::defaultTrustManager) + .isInstanceOf(SSLException.class) + .hasMessage("Could not build default TrustManager.") + .hasCauseInstanceOf(NoSuchAlgorithmException.class); + + } finally { + Security.setProperty("ssl.TrustManagerFactory.algorithm", originalAlgorithm); + } + } + /** * Append explanatory text * prefix and verify {@link TlsUtil#keyManager(byte[], byte[])} succeeds. diff --git a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java index f886a2ac000..eff367d8a41 100644 --- a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java +++ b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java @@ -6,11 +6,13 @@ package io.opentelemetry.exporter.sender.okhttp.internal; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import io.opentelemetry.sdk.common.export.HttpResponse; import io.opentelemetry.sdk.common.export.MessageWriter; import java.io.OutputStream; import java.net.URI; +import java.security.Security; import java.time.Duration; import java.util.Collections; import java.util.concurrent.SynchronousQueue; @@ -18,6 +20,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLException; import org.junit.jupiter.api.Test; class OkHttpHttpSenderTest { @@ -84,4 +87,38 @@ void constructor_usesDefaultTrustManagerWhenTrustManagerIsNull() throws Exceptio assertThat(sender).isNotNull(); } + + @Test + void constructor_wrapsDefaultTrustManagerFailure() throws Exception { + String originalAlgorithm = Security.getProperty("ssl.TrustManagerFactory.algorithm"); + + try { + Security.setProperty("ssl.TrustManagerFactory.algorithm", "invalid"); + + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, null, null); + + assertThatThrownBy( + () -> + new OkHttpHttpSender( + URI.create("https://localhost"), + "text/plain", + null, + Duration.ofSeconds(10), + Duration.ofSeconds(10), + Collections::emptyMap, + null, + null, + sslContext, + null, + null, + Long.MAX_VALUE)) + .isInstanceOf(IllegalStateException.class) + .hasMessage("Unable to initialize default trust manager") + .hasCauseInstanceOf(SSLException.class); + + } finally { + Security.setProperty("ssl.TrustManagerFactory.algorithm", originalAlgorithm); + } + } } From 2befe38aec407a7882f7e630bdb693dabf041fa6 Mon Sep 17 00:00:00 2001 From: Debashismitra01 Date: Tue, 7 Jul 2026 00:31:41 +0530 Subject: [PATCH 7/7] Address review feedback for mTLS default trust handling --- CHANGELOG.md | 2 +- .../exporter/internal/TlsConfigHelper.java | 3 +- .../internal/TlsConfigHelperTest.java | 13 -------- .../okhttp/internal/OkHttpHttpSenderTest.java | 32 +++++++++---------- 4 files changed, 18 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 344ddc4a497..783ce4a6b95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ #### Exporters -* OTLP: Fix OkHttp HTTP sender dropping client certificates when client TLS is configured without custom trusted certificates. +* Fix OkHttp client mTLS when using the platform default trust store([#8565](https://github.com/open-telemetry/opentelemetry-java/pull/8565)) ## Version 1.63.0 (2026-06-05) diff --git a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java index ec29bbdced6..f66abdf250e 100644 --- a/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java +++ b/exporters/common/src/main/java/io/opentelemetry/exporter/internal/TlsConfigHelper.java @@ -111,8 +111,7 @@ public X509TrustManager getTrustManager() { return trustManager; } - @Nullable - public X509TrustManager getEffectiveTrustManager() throws SSLException { + private X509TrustManager getEffectiveTrustManager() throws SSLException { if (trustManager != null) { return trustManager; } diff --git a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java index 6cf2ad0e1e9..2f716097f6c 100644 --- a/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java +++ b/exporters/common/src/test/java/io/opentelemetry/exporter/internal/TlsConfigHelperTest.java @@ -97,19 +97,6 @@ void setSslContext_AlreadyExists_Throws() throws Exception { .hasMessageContaining("sslContext or trustManager has been previously configured"); } - @Test - void getEffectiveTrustManager_returnsConfiguredTrustManager() - throws CertificateEncodingException, SSLException { - helper.setTrustManagerFromCerts(serverTls.certificate().getEncoded()); - - assertThat(helper.getEffectiveTrustManager()).isSameAs(helper.getTrustManager()); - } - - @Test - void getEffectiveTrustManager_returnsDefaultTrustManager() throws SSLException { - assertThat(helper.getEffectiveTrustManager()).isNotNull(); - } - @Test void getSslContext_wrapsDefaultTrustManagerFailure() { String originalAlgorithm = Security.getProperty("ssl.TrustManagerFactory.algorithm"); diff --git a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java index eff367d8a41..deff0a42715 100644 --- a/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java +++ b/exporters/sender/okhttp/src/test/java/io/opentelemetry/exporter/sender/okhttp/internal/OkHttpHttpSenderTest.java @@ -7,6 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import io.opentelemetry.sdk.common.export.HttpResponse; import io.opentelemetry.sdk.common.export.MessageWriter; @@ -70,22 +71,21 @@ void constructor_usesDefaultTrustManagerWhenTrustManagerIsNull() throws Exceptio SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, null, null); - OkHttpHttpSender sender = - new OkHttpHttpSender( - URI.create("https://localhost"), - "text/plain", - null, - Duration.ofSeconds(10), - Duration.ofSeconds(10), - Collections::emptyMap, - null, - null, - sslContext, - null, - null, - Long.MAX_VALUE); - - assertThat(sender).isNotNull(); + assertDoesNotThrow( + () -> + new OkHttpHttpSender( + URI.create("https://localhost"), + "text/plain", + null, + Duration.ofSeconds(10), + Duration.ofSeconds(10), + Collections::emptyMap, + null, + null, + sslContext, + null, + null, + Long.MAX_VALUE)); } @Test