From 4e705bf77dde1323b9c45f626dd176e55386d634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20Op=C3=A1lka?= Date: Wed, 9 Feb 2022 19:32:23 +0100 Subject: [PATCH 1/4] [WFCORE-4296] Add required --add-opens for java.base/com.sun.net.ssl.internal.ssl when HTTPS is configured --- .../common/src/main/resources/content/bin/common.bat | 2 ++ .../common/src/main/resources/content/bin/common.ps1 | 2 ++ .../common/src/main/resources/content/bin/common.sh | 2 ++ .../src/main/java/org/jboss/as/host/controller/jvm/JvmType.java | 1 + .../as/host/controller/ManagedServerBootCmdFactoryTestCase.java | 2 +- .../java/org/wildfly/core/launcher/AbstractCommandBuilder.java | 1 + .../test/java/org/wildfly/core/launcher/CommandBuilderTest.java | 1 + pom.xml | 2 +- 8 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core-feature-pack/common/src/main/resources/content/bin/common.bat b/core-feature-pack/common/src/main/resources/content/bin/common.bat index f0bf773b940..42be18ce5f5 100644 --- a/core-feature-pack/common/src/main/resources/content/bin/common.bat +++ b/core-feature-pack/common/src/main/resources/content/bin/common.bat @@ -48,6 +48,8 @@ goto :eof set "DEFAULT_MODULAR_JVM_OPTIONS=!DEFAULT_MODULAR_JVM_OPTIONS! --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED" rem Needed by Netty set "DEFAULT_MODULAR_JVM_OPTIONS=!DEFAULT_MODULAR_JVM_OPTIONS! --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED" + rem Needed by WildFly Elytron Extension + set "DEFAULT_MODULAR_JVM_OPTIONS=!DEFAULT_MODULAR_JVM_OPTIONS! --add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED" rem Needed if Hibernate applications use Javassist set "DEFAULT_MODULAR_JVM_OPTIONS=!DEFAULT_MODULAR_JVM_OPTIONS! --add-opens=java.base/java.lang=ALL-UNNAMED" rem Needed by the MicroProfile REST Client subsystem diff --git a/core-feature-pack/common/src/main/resources/content/bin/common.ps1 b/core-feature-pack/common/src/main/resources/content/bin/common.ps1 index d4e4c792bc2..01c212f3575 100644 --- a/core-feature-pack/common/src/main/resources/content/bin/common.ps1 +++ b/core-feature-pack/common/src/main/resources/content/bin/common.ps1 @@ -174,6 +174,8 @@ Param( $DEFAULT_MODULAR_JVM_OPTIONS += "--add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED" # Needed by Netty $DEFAULT_MODULAR_JVM_OPTIONS += "--add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED" + # Needed by WildFly Elytron Extension + $DEFAULT_MODULAR_JVM_OPTIONS += "--add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED" # Needed if Hibernate applications use Javassist $DEFAULT_MODULAR_JVM_OPTIONS += "--add-opens=java.base/java.lang=ALL-UNNAMED" # Needed by the MicroProfile REST Client subsystem diff --git a/core-feature-pack/common/src/main/resources/content/bin/common.sh b/core-feature-pack/common/src/main/resources/content/bin/common.sh index 1ae22524378..083e16a2a4e 100755 --- a/core-feature-pack/common/src/main/resources/content/bin/common.sh +++ b/core-feature-pack/common/src/main/resources/content/bin/common.sh @@ -44,6 +44,8 @@ setDefaultModularJvmOptions() { DEFAULT_MODULAR_JVM_OPTIONS="$DEFAULT_MODULAR_JVM_OPTIONS --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED" # Needed by Netty DEFAULT_MODULAR_JVM_OPTIONS="$DEFAULT_MODULAR_JVM_OPTIONS --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED" + # Needed by WildFly Elytron Extension + DEFAULT_MODULAR_JVM_OPTIONS="$DEFAULT_MODULAR_JVM_OPTIONS --add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED" # Needed if Hibernate applications use Javassist DEFAULT_MODULAR_JVM_OPTIONS="$DEFAULT_MODULAR_JVM_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED" # Needed by the MicroProfile REST Client subsystem diff --git a/host-controller/src/main/java/org/jboss/as/host/controller/jvm/JvmType.java b/host-controller/src/main/java/org/jboss/as/host/controller/jvm/JvmType.java index f9c61c1c59e..74fa1553bb2 100644 --- a/host-controller/src/main/java/org/jboss/as/host/controller/jvm/JvmType.java +++ b/host-controller/src/main/java/org/jboss/as/host/controller/jvm/JvmType.java @@ -63,6 +63,7 @@ public final class JvmType { modularJavaOpts.add("--add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED"); modularJavaOpts.add("--add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED"); modularJavaOpts.add("--add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED"); + modularJavaOpts.add("--add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang.invoke=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"); diff --git a/host-controller/src/test/java/org/jboss/as/host/controller/ManagedServerBootCmdFactoryTestCase.java b/host-controller/src/test/java/org/jboss/as/host/controller/ManagedServerBootCmdFactoryTestCase.java index f8a3744c507..e1cb32db835 100644 --- a/host-controller/src/test/java/org/jboss/as/host/controller/ManagedServerBootCmdFactoryTestCase.java +++ b/host-controller/src/test/java/org/jboss/as/host/controller/ManagedServerBootCmdFactoryTestCase.java @@ -129,7 +129,7 @@ public void testGetServerLaunchCommand() throws UnknownHostException { List result = instance.getServerLaunchCommand(); MatcherAssert.assertThat(result.size(), is(notNullValue())); if (result.size() > 18) { - MatcherAssert.assertThat(result.size(), is(33)); + MatcherAssert.assertThat(result.size(), is(34)); } else { MatcherAssert.assertThat(result.size(), is(18)); } diff --git a/launcher/src/main/java/org/wildfly/core/launcher/AbstractCommandBuilder.java b/launcher/src/main/java/org/wildfly/core/launcher/AbstractCommandBuilder.java index 75a8051965c..6ebcd69ebc8 100644 --- a/launcher/src/main/java/org/wildfly/core/launcher/AbstractCommandBuilder.java +++ b/launcher/src/main/java/org/wildfly/core/launcher/AbstractCommandBuilder.java @@ -68,6 +68,7 @@ abstract class AbstractCommandBuilder> imple modularJavaOpts.add("--add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED"); modularJavaOpts.add("--add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED"); modularJavaOpts.add("--add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED"); + modularJavaOpts.add("--add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang.invoke=ALL-UNNAMED"); modularJavaOpts.add("--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"); diff --git a/launcher/src/test/java/org/wildfly/core/launcher/CommandBuilderTest.java b/launcher/src/test/java/org/wildfly/core/launcher/CommandBuilderTest.java index d26bd9aa501..2cf56baa93d 100644 --- a/launcher/src/test/java/org/wildfly/core/launcher/CommandBuilderTest.java +++ b/launcher/src/test/java/org/wildfly/core/launcher/CommandBuilderTest.java @@ -273,6 +273,7 @@ private void testJPMSArguments(final Collection command, final int expec assertArgumentExists(command, "--add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED", expectedCount); assertArgumentExists(command, "--add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED", expectedCount); assertArgumentExists(command, "--add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED", expectedCount); + assertArgumentExists(command, "--add-opens=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED", expectedCount); assertArgumentExists(command, "--add-opens=java.base/java.lang=ALL-UNNAMED", expectedCount); assertArgumentExists(command, "--add-opens=java.base/java.lang.invoke=ALL-UNNAMED", expectedCount); assertArgumentExists(command, "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", expectedCount); diff --git a/pom.xml b/pom.xml index 7fdc01a6da6..8adcd3457c3 100644 --- a/pom.xml +++ b/pom.xml @@ -164,7 +164,7 @@ NB: In case an update is made to these exports and opens, make sure that the common.sh script is in sync. --> java.desktop/sun.awt java.naming/com.sun.jndi.ldap java.naming/com.sun.jndi.url.ldap java.naming/com.sun.jndi.url.ldaps jdk.naming.dns/com.sun.jndi.dns - java.base/java.lang java.base/java.lang.invoke java.base/java.lang.reflect java.base/java.io java.base/java.net java.base/java.security java.base/java.util java.base/java.util.concurrent java.management/javax.management java.naming/javax.naming + java.base/com.sun.net.ssl.internal.ssl java.base/java.lang java.base/java.lang.invoke java.base/java.lang.reflect java.base/java.io java.base/java.net java.base/java.security java.base/java.util java.base/java.util.concurrent java.management/javax.management java.naming/javax.naming