openvidu-server: OpenViduConfig#stringifiedArrayOfStringToListOfStrings

pull/370/head
pabloFuente 2019-10-09 11:54:16 +02:00
parent c1dced2bd0
commit 2fa0c7b5b5
1 changed files with 17 additions and 1 deletions

View File

@ -612,7 +612,7 @@ public class OpenviduConfig {
if (parameters.get(key) instanceof Collection<?>) {
list = (List<String>) parameters.get(key);
} else if (admitStringified) {
list = this.kmsUrisStringToList((String) parameters.get(key));
list = this.stringifiedArrayOfStringToListOfStrings((String) parameters.get(key));
} else {
throw new Exception("Property '" + key + "' must be an integer");
}
@ -654,6 +654,22 @@ public class OpenviduConfig {
return externalizedProps;
}
public List<String> stringifiedArrayOfStringToListOfStrings(String json) {
kmsUris = kmsUris.replaceAll("\\s", ""); // Remove all white spaces
kmsUris = kmsUris.replaceAll("\\\\", ""); // Remove previous escapes
kmsUris = kmsUris.replaceAll("\"", ""); // Remove previous double quotes
kmsUris = kmsUris.replaceFirst("^\\[", "[\\\""); // Escape first char
kmsUris = kmsUris.replaceFirst("\\]$", "\\\"]"); // Escape last char
kmsUris = kmsUris.replaceAll(",", "\\\",\\\""); // Escape middle strings
Gson gson = new Gson();
JsonArray kmsUrisArray = gson.fromJson(kmsUris, JsonArray.class);
List<String> list = JsonUtils.toStringList(kmsUrisArray);
if (list.size() == 1 && list.get(0).isEmpty()) {
list = new ArrayList<>();
}
return list;
}
public List<String> kmsUrisStringToList(String kmsUris) throws Exception {
kmsUris = kmsUris.replaceAll("\\s", ""); // Remove all white spaces
kmsUris = kmsUris.replaceAll("\\\\", ""); // Remove previous escapes