This is an automated email from the ASF dual-hosted git repository. apupier pushed a commit to branch test-fix-CAMEL-24812-with-CAMEL-22996-dropJava17 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9b4779e5b882f51eef5560c4d0aafb15281cf2c7 Author: Aurélien Pupier <[email protected]> AuthorDate: Fri Oct 16 11:10:31 2026 +0200 CAMEL-22996: remove reflection workaround from SSLContextParametersNamedGroupsListTest Co-authored-by: IBM Bob 2.2.1 Signed-off-by: Aurélien Pupier <[email protected]> --- .../SSLContextParametersNamedGroupsListTest.java | 20 +- .../support/jsse/SSLContextParametersTest.java | 203 ++++++++++----------- 2 files changed, 100 insertions(+), 123 deletions(-) diff --git a/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersNamedGroupsListTest.java b/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersNamedGroupsListTest.java index d5a67af1f8ed..51b8ba8043fe 100644 --- a/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersNamedGroupsListTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersNamedGroupsListTest.java @@ -16,17 +16,13 @@ */ package org.apache.camel.support.jsse; -import java.lang.reflect.Method; import java.util.List; import javax.net.ssl.SSLEngine; -import javax.net.ssl.SSLParameters; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.EnabledForJreRange; -import org.junit.jupiter.api.condition.JRE; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.assertj.core.api.Assertions.assertThat; /** * Blank, duplicate and not trimmed values in the named groups and signature schemes lists must not make the configured @@ -34,13 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; */ public class SSLContextParametersNamedGroupsListTest { - private static List<String> get(SSLParameters params, String name) throws Exception { - Method method = SSLParameters.class.getMethod(name); - return List.of((String[]) method.invoke(params)); - } - @Test - @EnabledForJreRange(min = JRE.JAVA_21) public void testNamedGroups() throws Exception { NamedGroupsParameters ngp = new NamedGroupsParameters(); ngp.setNamedGroup(List.of("secp384r1", "secp384r1", "", " x25519")); @@ -48,11 +38,11 @@ public class SSLContextParametersNamedGroupsListTest { scp.setNamedGroups(ngp); SSLEngine engine = scp.createSSLContext(null).createSSLEngine(); - assertEquals(List.of("secp384r1", "x25519"), get(engine.getSSLParameters(), "getNamedGroups")); + assertThat(List.of(engine.getSSLParameters().getNamedGroups())) + .containsExactly("secp384r1", "x25519"); } @Test - @EnabledForJreRange(min = JRE.JAVA_21) public void testSignatureSchemes() throws Exception { SignatureSchemesParameters ssp = new SignatureSchemesParameters(); ssp.setSignatureScheme(List.of("ecdsa_secp256r1_sha256", " ecdsa_secp256r1_sha256", "", "rsa_pss_rsae_sha256")); @@ -60,7 +50,7 @@ public class SSLContextParametersNamedGroupsListTest { scp.setSignatureSchemes(ssp); SSLEngine engine = scp.createSSLContext(null).createSSLEngine(); - assertEquals(List.of("ecdsa_secp256r1_sha256", "rsa_pss_rsae_sha256"), - get(engine.getSSLParameters(), "getSignatureSchemes")); + assertThat(List.of(engine.getSSLParameters().getSignatureSchemes())) + .containsExactly("ecdsa_secp256r1_sha256", "rsa_pss_rsae_sha256"); } } diff --git a/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersTest.java b/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersTest.java index 80053adead2f..1fc5df73a1db 100644 --- a/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/support/jsse/SSLContextParametersTest.java @@ -16,7 +16,6 @@ */ package org.apache.camel.support.jsse; -import java.lang.reflect.Method; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -26,7 +25,6 @@ import java.util.regex.Pattern; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; -import javax.net.ssl.SSLParameters; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLSocket; @@ -751,7 +749,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext controlContext = SSLContext.getInstance("TLSv1.3"); controlContext.init(null, null, null); SSLEngine controlEngine = controlContext.createSSLEngine(); - String[] controlNamedGroups = getNamedGroups(controlEngine.getSSLParameters()); + String[] controlNamedGroups = controlEngine.getSSLParameters().getNamedGroups(); // default - no named groups configured // When PQC groups are available (JDK 25+), auto-configuration reorders named groups @@ -764,14 +762,14 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { if (Arrays.asList(controlNamedGroups).contains("X25519MLKEM768")) { // PQC auto-configuration reorders groups with X25519MLKEM768 first - assertEquals("X25519MLKEM768", getNamedGroups(engine.getSSLParameters())[0]); - assertEquals("X25519MLKEM768", getNamedGroups(socket.getSSLParameters())[0]); - assertEquals("X25519MLKEM768", getNamedGroups(serverSocket.getSSLParameters())[0]); + assertEquals("X25519MLKEM768", engine.getSSLParameters().getNamedGroups()[0]); + assertEquals("X25519MLKEM768", socket.getSSLParameters().getNamedGroups()[0]); + assertEquals("X25519MLKEM768", serverSocket.getSSLParameters().getNamedGroups()[0]); } else { // No PQC available, should keep JVM defaults - assertArrayEquals(controlNamedGroups, getNamedGroups(engine.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(socket.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(serverSocket.getSSLParameters())); + assertArrayEquals(controlNamedGroups, engine.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, socket.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, serverSocket.getSSLParameters().getNamedGroups()); } // empty ngp - sets empty list @@ -782,9 +780,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(0, getNamedGroups(engine.getSSLParameters()).length); - assertEquals(0, getNamedGroups(socket.getSSLParameters()).length); - assertEquals(0, getNamedGroups(serverSocket.getSSLParameters()).length); + assertEquals(0, engine.getSSLParameters().getNamedGroups().length); + assertEquals(0, socket.getSSLParameters().getNamedGroups().length); + assertEquals(0, serverSocket.getSSLParameters().getNamedGroups().length); // explicit named group ngp.setNamedGroup(Collections.singletonList(controlNamedGroups[0])); @@ -793,12 +791,12 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(1, getNamedGroups(engine.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(engine.getSSLParameters())[0]); - assertEquals(1, getNamedGroups(socket.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(socket.getSSLParameters())[0]); - assertEquals(1, getNamedGroups(serverSocket.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(serverSocket.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], engine.getSSLParameters().getNamedGroups()[0]); + assertEquals(1, socket.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], socket.getSSLParameters().getNamedGroups()[0]); + assertEquals(1, serverSocket.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], serverSocket.getSSLParameters().getNamedGroups()[0]); // explicit named groups override filter FilterParameters filter = new FilterParameters(); @@ -809,12 +807,12 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(1, getNamedGroups(engine.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(engine.getSSLParameters())[0]); - assertEquals(1, getNamedGroups(socket.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(socket.getSSLParameters())[0]); - assertEquals(1, getNamedGroups(serverSocket.getSSLParameters()).length); - assertEquals(controlNamedGroups[0], getNamedGroups(serverSocket.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], engine.getSSLParameters().getNamedGroups()[0]); + assertEquals(1, socket.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], socket.getSSLParameters().getNamedGroups()[0]); + assertEquals(1, serverSocket.getSSLParameters().getNamedGroups().length); + assertEquals(controlNamedGroups[0], serverSocket.getSSLParameters().getNamedGroups()[0]); } @Test @@ -823,7 +821,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext controlContext = SSLContext.getInstance("TLSv1.3"); controlContext.init(null, null, null); SSLEngine controlEngine = controlContext.createSSLEngine(); - String[] controlNamedGroups = getNamedGroups(controlEngine.getSSLParameters()); + String[] controlNamedGroups = controlEngine.getSSLParameters().getNamedGroups(); // default - no filter, keeps defaults (or PQC-reordered defaults on JDK 25+) SSLContextParameters scp = new SSLContextParameters(); @@ -834,13 +832,13 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); if (Arrays.asList(controlNamedGroups).contains("X25519MLKEM768")) { - assertEquals("X25519MLKEM768", getNamedGroups(engine.getSSLParameters())[0]); - assertEquals("X25519MLKEM768", getNamedGroups(socket.getSSLParameters())[0]); - assertEquals("X25519MLKEM768", getNamedGroups(serverSocket.getSSLParameters())[0]); + assertEquals("X25519MLKEM768", engine.getSSLParameters().getNamedGroups()[0]); + assertEquals("X25519MLKEM768", socket.getSSLParameters().getNamedGroups()[0]); + assertEquals("X25519MLKEM768", serverSocket.getSSLParameters().getNamedGroups()[0]); } else { - assertArrayEquals(controlNamedGroups, getNamedGroups(engine.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(socket.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(serverSocket.getSSLParameters())); + assertArrayEquals(controlNamedGroups, engine.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, socket.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, serverSocket.getSSLParameters().getNamedGroups()); } // empty filter - no includes means no groups match @@ -851,9 +849,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(0, getNamedGroups(engine.getSSLParameters()).length); - assertEquals(0, getNamedGroups(socket.getSSLParameters()).length); - assertEquals(0, getNamedGroups(serverSocket.getSSLParameters()).length); + assertEquals(0, engine.getSSLParameters().getNamedGroups().length); + assertEquals(0, socket.getSSLParameters().getNamedGroups().length); + assertEquals(0, serverSocket.getSSLParameters().getNamedGroups().length); // include all filter.getInclude().add(".*"); @@ -862,9 +860,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertArrayEquals(controlNamedGroups, getNamedGroups(engine.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(socket.getSSLParameters())); - assertArrayEquals(controlNamedGroups, getNamedGroups(serverSocket.getSSLParameters())); + assertArrayEquals(controlNamedGroups, engine.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, socket.getSSLParameters().getNamedGroups()); + assertArrayEquals(controlNamedGroups, serverSocket.getSSLParameters().getNamedGroups()); // include all but exclude all (excludes win) filter.getExclude().add(".*"); @@ -873,9 +871,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(0, getNamedGroups(engine.getSSLParameters()).length); - assertEquals(0, getNamedGroups(socket.getSSLParameters()).length); - assertEquals(0, getNamedGroups(serverSocket.getSSLParameters()).length); + assertEquals(0, engine.getSSLParameters().getNamedGroups().length); + assertEquals(0, socket.getSSLParameters().getNamedGroups().length); + assertEquals(0, serverSocket.getSSLParameters().getNamedGroups().length); // include only x* groups (e.g. x25519, x448) filter.getInclude().clear(); @@ -886,16 +884,16 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertTrue(getNamedGroups(engine.getSSLParameters()).length >= 1); - for (String group : getNamedGroups(engine.getSSLParameters())) { + assertTrue(engine.getSSLParameters().getNamedGroups().length >= 1); + for (String group : engine.getSSLParameters().getNamedGroups()) { assertTrue(group.startsWith("x"), "Expected group starting with 'x' but got: " + group); } - assertTrue(getNamedGroups(socket.getSSLParameters()).length >= 1); - for (String group : getNamedGroups(socket.getSSLParameters())) { + assertTrue(socket.getSSLParameters().getNamedGroups().length >= 1); + for (String group : socket.getSSLParameters().getNamedGroups()) { assertTrue(group.startsWith("x"), "Expected group starting with 'x' but got: " + group); } - assertTrue(getNamedGroups(serverSocket.getSSLParameters()).length >= 1); - for (String group : getNamedGroups(serverSocket.getSSLParameters())) { + assertTrue(serverSocket.getSSLParameters().getNamedGroups().length >= 1); + for (String group : serverSocket.getSSLParameters().getNamedGroups()) { assertTrue(group.startsWith("x"), "Expected group starting with 'x' but got: " + group); } } @@ -918,8 +916,8 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { assertArrayEquals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()); assertArrayEquals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()); - assertEquals(1, getNamedGroups(engine.getSSLParameters()).length); - assertEquals("x25519", getNamedGroups(engine.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getNamedGroups().length); + assertEquals("x25519", engine.getSSLParameters().getNamedGroups()[0]); } @Test @@ -928,7 +926,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext controlContext = SSLContext.getInstance("TLSv1.3"); controlContext.init(null, null, null); SSLEngine controlEngine = controlContext.createSSLEngine(); - String[] controlSignatureSchemes = getSignatureSchemes(controlEngine.getSSLParameters()); + String[] controlSignatureSchemes = controlEngine.getSSLParameters().getSignatureSchemes(); // default - no signature schemes configured, should keep defaults SSLContextParameters scp = new SSLContextParameters(); @@ -938,9 +936,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket(); SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertArrayEquals(controlSignatureSchemes, getSignatureSchemes(engine.getSSLParameters())); - assertArrayEquals(controlSignatureSchemes, getSignatureSchemes(socket.getSSLParameters())); - assertArrayEquals(controlSignatureSchemes, getSignatureSchemes(serverSocket.getSSLParameters())); + assertArrayEquals(controlSignatureSchemes, engine.getSSLParameters().getSignatureSchemes()); + assertArrayEquals(controlSignatureSchemes, socket.getSSLParameters().getSignatureSchemes()); + assertArrayEquals(controlSignatureSchemes, serverSocket.getSSLParameters().getSignatureSchemes()); // empty ssp - sets empty list SignatureSchemesParameters ssp = new SignatureSchemesParameters(); @@ -950,9 +948,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(0, getSignatureSchemes(engine.getSSLParameters()).length); - assertEquals(0, getSignatureSchemes(socket.getSSLParameters()).length); - assertEquals(0, getSignatureSchemes(serverSocket.getSSLParameters()).length); + assertEquals(0, engine.getSSLParameters().getSignatureSchemes().length); + assertEquals(0, socket.getSSLParameters().getSignatureSchemes().length); + assertEquals(0, serverSocket.getSSLParameters().getSignatureSchemes().length); // explicit signature scheme ssp.setSignatureScheme(Collections.singletonList("rsa_pss_rsae_sha256")); @@ -961,12 +959,12 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(1, getSignatureSchemes(engine.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(engine.getSSLParameters())[0]); - assertEquals(1, getSignatureSchemes(socket.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(socket.getSSLParameters())[0]); - assertEquals(1, getSignatureSchemes(serverSocket.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(serverSocket.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", engine.getSSLParameters().getSignatureSchemes()[0]); + assertEquals(1, socket.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", socket.getSSLParameters().getSignatureSchemes()[0]); + assertEquals(1, serverSocket.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", serverSocket.getSSLParameters().getSignatureSchemes()[0]); // explicit signature schemes override filter FilterParameters filter = new FilterParameters(); @@ -977,12 +975,12 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(1, getSignatureSchemes(engine.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(engine.getSSLParameters())[0]); - assertEquals(1, getSignatureSchemes(socket.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(socket.getSSLParameters())[0]); - assertEquals(1, getSignatureSchemes(serverSocket.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(serverSocket.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", engine.getSSLParameters().getSignatureSchemes()[0]); + assertEquals(1, socket.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", socket.getSSLParameters().getSignatureSchemes()[0]); + assertEquals(1, serverSocket.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", serverSocket.getSSLParameters().getSignatureSchemes()[0]); } @Test @@ -999,9 +997,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket(); SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertNull(getSignatureSchemes(engine.getSSLParameters())); - assertNull(getSignatureSchemes(socket.getSSLParameters())); - assertNull(getSignatureSchemes(serverSocket.getSSLParameters())); + assertNull(engine.getSSLParameters().getSignatureSchemes()); + assertNull(socket.getSSLParameters().getSignatureSchemes()); + assertNull(serverSocket.getSSLParameters().getSignatureSchemes()); // a filter cannot be applied as there are no default schemes to filter, so the defaults are kept (null) // instead of an empty list (which would fail every handshake) @@ -1013,9 +1011,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertNull(getSignatureSchemes(engine.getSSLParameters())); - assertNull(getSignatureSchemes(socket.getSSLParameters())); - assertNull(getSignatureSchemes(serverSocket.getSSLParameters())); + assertNull(engine.getSSLParameters().getSignatureSchemes()); + assertNull(socket.getSSLParameters().getSignatureSchemes()); + assertNull(serverSocket.getSSLParameters().getSignatureSchemes()); filter.getInclude().clear(); // explicit schemes override filter - filter ignored when schemes are set @@ -1033,7 +1031,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { engine = context.createSSLEngine(); // explicit schemes take precedence over filter - assertEquals(4, getSignatureSchemes(engine.getSSLParameters()).length); + assertEquals(4, engine.getSSLParameters().getSignatureSchemes().length); // clear explicit schemes, keep filter scp.setSignatureSchemes(null); @@ -1045,9 +1043,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); // JDK defaults are null → the filter cannot be applied and the defaults are kept (not an empty array) - assertNull(getSignatureSchemes(engine.getSSLParameters())); - assertNull(getSignatureSchemes(socket.getSSLParameters())); - assertNull(getSignatureSchemes(serverSocket.getSSLParameters())); + assertNull(engine.getSSLParameters().getSignatureSchemes()); + assertNull(socket.getSSLParameters().getSignatureSchemes()); + assertNull(serverSocket.getSSLParameters().getSignatureSchemes()); } @Test @@ -1063,11 +1061,11 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket(); SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertNotNull(getSignatureSchemes(engine.getSSLParameters())); - assertNotNull(getSignatureSchemes(socket.getSSLParameters())); - assertNotNull(getSignatureSchemes(serverSocket.getSSLParameters())); + assertNotNull(engine.getSSLParameters().getSignatureSchemes()); + assertNotNull(socket.getSSLParameters().getSignatureSchemes()); + assertNotNull(serverSocket.getSSLParameters().getSignatureSchemes()); - int defaultSignatureSchemeNumber = getSignatureSchemes(engine.getSSLParameters()).length; + int defaultSignatureSchemeNumber = engine.getSSLParameters().getSignatureSchemes().length; // a filter cannot be applied as there are no default schemes to filter, so the defaults are kept (null) // instead of an empty list (which would fail every handshake) @@ -1079,9 +1077,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertNull(getSignatureSchemes(engine.getSSLParameters())); - assertNull(getSignatureSchemes(socket.getSSLParameters())); - assertNull(getSignatureSchemes(serverSocket.getSSLParameters())); + assertNull(engine.getSSLParameters().getSignatureSchemes()); + assertNull(socket.getSSLParameters().getSignatureSchemes()); + assertNull(serverSocket.getSSLParameters().getSignatureSchemes()); filter.getInclude().clear(); // explicit schemes override filter - filter ignored when schemes are set @@ -1099,7 +1097,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { engine = context.createSSLEngine(); // explicit schemes take precedence over filter - assertEquals(4, getSignatureSchemes(engine.getSSLParameters()).length); + assertEquals(4, engine.getSSLParameters().getSignatureSchemes().length); // clear explicit schemes, keep filter - now filter applies to JDK defaults scp.setSignatureSchemes(null); @@ -1110,9 +1108,9 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { socket = (SSLSocket) context.getSocketFactory().createSocket(); serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket(); - assertEquals(defaultSignatureSchemeNumber, getSignatureSchemes(engine.getSSLParameters()).length); - assertEquals(defaultSignatureSchemeNumber, getSignatureSchemes(socket.getSSLParameters()).length); - assertEquals(defaultSignatureSchemeNumber, getSignatureSchemes(serverSocket.getSSLParameters()).length); + assertEquals(defaultSignatureSchemeNumber, engine.getSSLParameters().getSignatureSchemes().length); + assertEquals(defaultSignatureSchemeNumber, socket.getSSLParameters().getSignatureSchemes().length); + assertEquals(defaultSignatureSchemeNumber, serverSocket.getSSLParameters().getSignatureSchemes().length); } @Test @@ -1134,16 +1132,16 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { assertArrayEquals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()); assertArrayEquals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()); // Named groups may be reordered by PQC auto-configuration, but same groups should be present - String[] controlGroups = getNamedGroups(controlEngine.getSSLParameters()); - String[] engineGroups = getNamedGroups(engine.getSSLParameters()); + String[] controlGroups = controlEngine.getSSLParameters().getNamedGroups(); + String[] engineGroups = engine.getSSLParameters().getNamedGroups(); if (controlGroups != null && Arrays.asList(controlGroups).contains("X25519MLKEM768")) { assertEquals("X25519MLKEM768", engineGroups[0]); assertEquals(controlGroups.length, engineGroups.length); } else { assertArrayEquals(controlGroups, engineGroups); } - assertEquals(1, getSignatureSchemes(engine.getSSLParameters()).length); - assertEquals("rsa_pss_rsae_sha256", getSignatureSchemes(engine.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getSignatureSchemes().length); + assertEquals("rsa_pss_rsae_sha256", engine.getSSLParameters().getSignatureSchemes()[0]); } @Test @@ -1237,14 +1235,14 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext controlContext = SSLContext.getInstance("TLSv1.3"); controlContext.init(null, null, null); SSLEngine controlEngine = controlContext.createSSLEngine(); - String[] controlNamedGroups = getNamedGroups(controlEngine.getSSLParameters()); + String[] controlNamedGroups = controlEngine.getSSLParameters().getNamedGroups(); boolean pqcAvailable = controlNamedGroups != null && Arrays.asList(controlNamedGroups).contains("X25519MLKEM768"); SSLContextParameters scp = new SSLContextParameters(); SSLContext context = scp.createSSLContext(null); SSLEngine engine = context.createSSLEngine(); - String[] resultGroups = getNamedGroups(engine.getSSLParameters()); + String[] resultGroups = engine.getSSLParameters().getNamedGroups(); if (pqcAvailable) { // X25519MLKEM768 should be first @@ -1272,8 +1270,8 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext context = scp.createSSLContext(null); SSLEngine engine = context.createSSLEngine(); - assertEquals(1, getNamedGroups(engine.getSSLParameters()).length); - assertEquals("secp256r1", getNamedGroups(engine.getSSLParameters())[0]); + assertEquals(1, engine.getSSLParameters().getNamedGroups().length); + assertEquals("secp256r1", engine.getSSLParameters().getNamedGroups()[0]); } @Test @@ -1288,7 +1286,7 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { SSLContext context = scp.createSSLContext(null); SSLEngine engine = context.createSSLEngine(); - for (String group : getNamedGroups(engine.getSSLParameters())) { + for (String group : engine.getSSLParameters().getNamedGroups()) { assertTrue(group.startsWith("secp"), "Expected group starting with 'secp' but got: " + group); } } @@ -1330,15 +1328,4 @@ public class SSLContextParametersTest extends AbstractJsseParametersTest { } } - // Reflection helpers for JDK 20+ SSLParameters.getNamedGroups()/getSignatureSchemes() - // These methods are not available with --release 17 compilation target - private static String[] getNamedGroups(SSLParameters params) throws Exception { - Method m = SSLParameters.class.getMethod("getNamedGroups"); - return (String[]) m.invoke(params); - } - - private static String[] getSignatureSchemes(SSLParameters params) throws Exception { - Method m = SSLParameters.class.getMethod("getSignatureSchemes"); - return (String[]) m.invoke(params); - } }
