Skip to content

Commit dbed822

Browse files
authored
Merge pull request #1478 from OneSignal/fix/unescapeEID
Match and fix any external id that has escaped forward slashes
2 parents 6445171 + a72bb20 commit dbed822

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignalRestClient.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
import java.net.HttpURLConnection;
4141
import java.net.URL;
4242
import java.util.Scanner;
43+
import java.util.regex.Matcher;
44+
import java.util.regex.Pattern;
4345

4446
class OneSignalRestClient {
4547
static abstract class ResponseHandler {
@@ -158,6 +160,18 @@ private static Thread startHTTPConnection(String url, String method, JSONObject
158160

159161
if (jsonBody != null) {
160162
String strJsonBody = jsonBody.toString();
163+
164+
Pattern eidPattern = Pattern.compile("(?<=\"external_user_id\":\").*\\\\/.*?(?=\",|\"\\})");
165+
Matcher eidMatcher = eidPattern.matcher(strJsonBody);
166+
167+
if (eidMatcher.find()) {
168+
String matched = eidMatcher.group(0);
169+
if (matched != null) {
170+
String unescapedEID = matched.replace("\\/", "/");
171+
strJsonBody = eidMatcher.replaceAll(unescapedEID);
172+
}
173+
}
174+
161175
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "OneSignalRestClient: " + method + " SEND JSON: " + strJsonBody);
162176

163177
byte[] sendBytes = strJsonBody.getBytes("UTF-8");

0 commit comments

Comments
 (0)