src/main/kotlin/de/uapcore/lightpit/AbstractServlet.kt

changeset 358
e46bef1bdddd
parent 357
8509308fbbe9
--- a/src/main/kotlin/de/uapcore/lightpit/AbstractServlet.kt	Sun Mar 09 13:54:46 2025 +0100
+++ b/src/main/kotlin/de/uapcore/lightpit/AbstractServlet.kt	Sun Mar 09 15:57:52 2025 +0100
@@ -95,6 +95,24 @@
 
     private fun sanitizedRequestPath(req: HttpServletRequest) = req.pathInfo ?: "/"
 
+    protected fun sanitizeJson(str: String): String {
+        var result = "\""
+        for (i in str.indices) {
+            when (val c = str[i]) {
+                '\\', '"', '/' -> result += "\\$c"
+                '\t' -> result += "\\t"
+                '\n' -> result += "\\n"
+                '\r' -> result += "\\r"
+                else -> if (c < ' ' || (c in '\u0080'..'\u00bf') || (c in '\u2000'..'\u20ff')) {
+                    result += "\\u%04x".format(c.code)
+                } else {
+                    result += c
+                }
+            }
+        }
+        return result + "\""
+    }
+
     private fun doProcess(
         req: HttpServletRequest,
         resp: HttpServletResponse,

mercurial