From e8b756654919e593302da6ddf1f0855662ee2202 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Mon, 20 Nov 2023 16:46:57 +0100 Subject: [PATCH] MODCLUSTER-803 Force a locale when calling toUpperCase() and toLowerCase() methods --- .../main/java/org/jboss/modcluster/container/Connector.java | 3 ++- .../modcluster/advertise/impl/DatagramChannelFactoryImpl.java | 3 ++- .../java/org/jboss/modcluster/mcmp/impl/JSSESocketFactory.java | 3 ++- .../advertise/impl/AdvertiseListenerImplTestCase.java | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/container/spi/src/main/java/org/jboss/modcluster/container/Connector.java b/container/spi/src/main/java/org/jboss/modcluster/container/Connector.java index 335d3df7..4a1e2e17 100644 --- a/container/spi/src/main/java/org/jboss/modcluster/container/Connector.java +++ b/container/spi/src/main/java/org/jboss/modcluster/container/Connector.java @@ -5,6 +5,7 @@ package org.jboss.modcluster.container; import java.net.InetAddress; +import java.util.Locale; /** * SPI for a connector, defined as a communication end-point for a client or proxy. @@ -38,7 +39,7 @@ public int getDefaultPort() { */ @Override public String toString() { - return this.name().toLowerCase(); + return this.name().toLowerCase(Locale.ENGLISH); } } diff --git a/core/src/main/java/org/jboss/modcluster/advertise/impl/DatagramChannelFactoryImpl.java b/core/src/main/java/org/jboss/modcluster/advertise/impl/DatagramChannelFactoryImpl.java index e8487a50..c28b0d55 100755 --- a/core/src/main/java/org/jboss/modcluster/advertise/impl/DatagramChannelFactoryImpl.java +++ b/core/src/main/java/org/jboss/modcluster/advertise/impl/DatagramChannelFactoryImpl.java @@ -13,6 +13,7 @@ import java.nio.channels.DatagramChannel; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Locale; import org.jboss.logging.Logger; import org.jboss.modcluster.ModClusterLogger; @@ -42,7 +43,7 @@ public class DatagramChannelFactoryImpl implements DatagramChannelFactory { public DatagramChannelFactoryImpl() { String value = this.getSystemProperty("os.name"); - this.canBindToMulticastAddress = (value != null) && (value.toLowerCase().startsWith("linux") || value.toLowerCase().startsWith("mac") || value.toLowerCase().startsWith("hp")); + this.canBindToMulticastAddress = (value != null) && (value.toLowerCase(Locale.ENGLISH).startsWith("linux") || value.toLowerCase(Locale.ENGLISH).startsWith("mac") || value.toLowerCase(Locale.ENGLISH).startsWith("hp")); } private String getSystemProperty(final String key) { diff --git a/core/src/main/java/org/jboss/modcluster/mcmp/impl/JSSESocketFactory.java b/core/src/main/java/org/jboss/modcluster/mcmp/impl/JSSESocketFactory.java index 2730f17b..ccede4f1 100755 --- a/core/src/main/java/org/jboss/modcluster/mcmp/impl/JSSESocketFactory.java +++ b/core/src/main/java/org/jboss/modcluster/mcmp/impl/JSSESocketFactory.java @@ -31,6 +31,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import javax.net.SocketFactory; @@ -243,7 +244,7 @@ protected KeyManager[] getKeyManagers() throws GeneralSecurityException, IOExcep KeyManager[] kms = kmf.getKeyManagers(); if (alias != null) { if ("JKS".equals(this.config.getSslKeyStoreType())) { - alias = alias.toLowerCase(); + alias = alias.toLowerCase(Locale.ENGLISH); } for (int i = 0; i < kms.length; i++) { kms[i] = new JSSEKeyManager((X509KeyManager) kms[i], alias); diff --git a/core/src/test/java/org/jboss/modcluster/advertise/impl/AdvertiseListenerImplTestCase.java b/core/src/test/java/org/jboss/modcluster/advertise/impl/AdvertiseListenerImplTestCase.java index 58d86078..98aec989 100755 --- a/core/src/test/java/org/jboss/modcluster/advertise/impl/AdvertiseListenerImplTestCase.java +++ b/core/src/test/java/org/jboss/modcluster/advertise/impl/AdvertiseListenerImplTestCase.java @@ -15,6 +15,7 @@ import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; import java.util.Date; +import java.util.Locale; import java.util.concurrent.Executors; import org.jboss.modcluster.TestUtils; @@ -109,7 +110,7 @@ public void testBasicOperation() throws Exception { assertFalse(this.channel.isConnected()); - if (!System.getProperty("os.name").toLowerCase().startsWith("mac")) { + if (!System.getProperty("os.name").toLowerCase(Locale.ENGLISH).startsWith("mac")) { listener.close(); } else { try {