diff --git a/apps/dashboard/src/main/java/com/akto/action/test_editor/SaveTestEditorAction.java b/apps/dashboard/src/main/java/com/akto/action/test_editor/SaveTestEditorAction.java index d35a6ca609..97567e9ab0 100644 --- a/apps/dashboard/src/main/java/com/akto/action/test_editor/SaveTestEditorAction.java +++ b/apps/dashboard/src/main/java/com/akto/action/test_editor/SaveTestEditorAction.java @@ -68,6 +68,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static com.akto.util.enums.GlobalEnums.YamlTemplateSource; @@ -134,6 +136,7 @@ private String getInfoKeyMissing(Info info){ public String saveTestEditorFile() { TestConfig testConfig; try { + this.content = (escapeUnicodeLiterals(content)); ObjectMapper mapper = new ObjectMapper(YAMLFactory.builder() .enable(YAMLGenerator.Feature.MINIMIZE_QUOTES) .disable(YAMLGenerator.Feature.SPLIT_LINES) @@ -212,7 +215,7 @@ public String saveTestEditorFile() { config.replace("id", finalTestId); infoMap.put("name", finalTestName); - this.content = mapper.writeValueAsString(config); + this.content = unescapeUnicodeLiterals(mapper.writeValueAsString(config)); testConfig = TestConfigYamlParser.parseTemplate(content); } catch (Exception e) { e.printStackTrace(); @@ -262,6 +265,22 @@ public String saveTestEditorFile() { return SUCCESS.toUpperCase(); } + private static String escapeUnicodeLiterals(String yamlContent) { + Pattern pattern = Pattern.compile("(?