From d7eeacf2a0c24946de56471a99e744f21642d784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jeli=C5=84ski?= Date: Wed, 17 Sep 2025 14:01:32 +0000 Subject: [PATCH] 8367112: HttpClient does not support Named Groups set on SSLParameters Reviewed-by: jpai, dfuchs --- .../jdk/internal/net/http/common/Utils.java | 2 ++ .../net/httpclient/HttpClientBuilderTest.java | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java b/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java index bcedff8844e..2916a41e62a 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java @@ -610,6 +610,8 @@ public final class Utils { p1.setSNIMatchers(p.getSNIMatchers()); p1.setServerNames(p.getServerNames()); p1.setUseCipherSuitesOrder(p.getUseCipherSuitesOrder()); + p1.setSignatureSchemes(p.getSignatureSchemes()); + p1.setNamedGroups(p.getNamedGroups()); return p1; } diff --git a/test/jdk/java/net/httpclient/HttpClientBuilderTest.java b/test/jdk/java/net/httpclient/HttpClientBuilderTest.java index 451221c6e23..6074a3a855b 100644 --- a/test/jdk/java/net/httpclient/HttpClientBuilderTest.java +++ b/test/jdk/java/net/httpclient/HttpClientBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,7 @@ import static org.testng.Assert.*; /* * @test - * @bug 8209137 8326233 + * @bug 8209137 8326233 8367112 * @summary HttpClient[.Builder] API and behaviour checks * @library /test/lib * @build jdk.test.lib.net.SimpleSSLContext @@ -271,6 +271,20 @@ public class HttpClientBuilderTest { try (var closer = closeable(builder)) { assertTrue(closer.build().sslParameters().getProtocols()[0].equals("C")); } + SSLParameters d = new SSLParameters(); + d.setSignatureSchemes(new String[] { "C" }); + builder.sslParameters(d); + d.setSignatureSchemes(new String[] { "D" }); + try (var closer = closeable(builder)) { + assertTrue(closer.build().sslParameters().getSignatureSchemes()[0].equals("C")); + } + SSLParameters e = new SSLParameters(); + e.setNamedGroups(new String[] { "C" }); + builder.sslParameters(e); + e.setNamedGroups(new String[] { "D" }); + try (var closer = closeable(builder)) { + assertTrue(closer.build().sslParameters().getNamedGroups()[0].equals("C")); + } // test defaults for needClientAuth and wantClientAuth builder.sslParameters(new SSLParameters()); try (var closer = closeable(builder)) {