92 logger.trace("invoke {0}", method) |
92 logger.trace("invoke {0}", method) |
93 method(HttpRequest(req, resp, params), dao) |
93 method(HttpRequest(req, resp, params), dao) |
94 } |
94 } |
95 |
95 |
96 private fun sanitizedRequestPath(req: HttpServletRequest) = req.pathInfo ?: "/" |
96 private fun sanitizedRequestPath(req: HttpServletRequest) = req.pathInfo ?: "/" |
|
97 |
|
98 protected fun sanitizeJson(str: String): String { |
|
99 var result = "\"" |
|
100 for (i in str.indices) { |
|
101 when (val c = str[i]) { |
|
102 '\\', '"', '/' -> result += "\\$c" |
|
103 '\t' -> result += "\\t" |
|
104 '\n' -> result += "\\n" |
|
105 '\r' -> result += "\\r" |
|
106 else -> if (c < ' ' || (c in '\u0080'..'\u00bf') || (c in '\u2000'..'\u20ff')) { |
|
107 result += "\\u%04x".format(c.code) |
|
108 } else { |
|
109 result += c |
|
110 } |
|
111 } |
|
112 } |
|
113 return result + "\"" |
|
114 } |
97 |
115 |
98 private fun doProcess( |
116 private fun doProcess( |
99 req: HttpServletRequest, |
117 req: HttpServletRequest, |
100 resp: HttpServletResponse, |
118 resp: HttpServletResponse, |
101 mappings: Map<PathPattern, MappingMethod> |
119 mappings: Map<PathPattern, MappingMethod> |