From: AsamK Date: Fri, 2 Jun 2023 19:29:58 +0000 (+0200) Subject: Add helper method to create valid dbus object path X-Git-Tag: v0.12.0~41 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/d0d3e207135f8625d20461b4444e12d6baa1b6b6 Add helper method to create valid dbus object path --- diff --git a/src/main/java/org/asamk/signal/DbusConfig.java b/src/main/java/org/asamk/signal/DbusConfig.java index ddd534c4..c4c923cf 100644 --- a/src/main/java/org/asamk/signal/DbusConfig.java +++ b/src/main/java/org/asamk/signal/DbusConfig.java @@ -1,5 +1,7 @@ package org.asamk.signal; +import org.asamk.signal.dbus.DbusUtils; + public class DbusConfig { private static final String SIGNAL_BUSNAME = "org.asamk.Signal"; @@ -18,6 +20,6 @@ public class DbusConfig { return SIGNAL_OBJECT_BASE_PATH; } - return SIGNAL_OBJECT_BASE_PATH + "/" + account.replace('+', '_'); + return SIGNAL_OBJECT_BASE_PATH + "/" + DbusUtils.makeValidObjectPathElement(account); } } diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index afc4e03d..b1d64886 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -56,6 +56,8 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import static org.asamk.signal.dbus.DbusUtils.makeValidObjectPathElement; + public class DbusSignalImpl implements Signal { private final Manager m; @@ -980,11 +982,7 @@ public class DbusSignalImpl implements Signal { } private static String getGroupObjectPath(String basePath, byte[] groupId) { - return basePath + "/Groups/" + Base64.getEncoder() - .encodeToString(groupId) - .replace("+", "_") - .replace("/", "_") - .replace("=", "_"); + return basePath + "/Groups/" + makeValidObjectPathElement(Base64.getEncoder().encodeToString(groupId)); } private void updateGroups() { diff --git a/src/main/java/org/asamk/signal/dbus/DbusUtils.java b/src/main/java/org/asamk/signal/dbus/DbusUtils.java new file mode 100644 index 00000000..eba0cccf --- /dev/null +++ b/src/main/java/org/asamk/signal/dbus/DbusUtils.java @@ -0,0 +1,12 @@ +package org.asamk.signal.dbus; + +public final class DbusUtils { + + private DbusUtils() { + + } + + public static String makeValidObjectPathElement(String pathElement) { + return pathElement.replaceAll("[^A-Za-z0-9_]", "_"); + } +}