| 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> |