Whe*_*der 1 spring-mvc kotlin spring-boot
我有以下端点
@RequestMapping("missedcall")
fun missedCall(@RequestParam("v") encryptedValue : String, model:
ModelMap): String {
//decrypt encryptedValue here
}
Run Code Online (Sandbox Code Playgroud)
当我使用“ http://myurl.com/missedcall?v=this+is+my+encrypted+string ”执行此端点时,encryptedValue 初始化为“这是我的加密字符串”。我实际上想要这些优点,因为它们是加密的一部分,没有它们我无法解密字符串。
解决方法是对字符串进行 URL 编码以恢复加号和其他特殊字符,但是有没有更干净的方法呢?也许禁用此特定端点的 URL 解码?
注意:我无法在正文中传递此参数,它必须是查询字符串的一部分。另外,这是用 Kotlin 编写的,但我 100% 确定 Java 也有类似的问题,所以不要对 Kotlin 感到灰心:)。
任何 Web 框架都会为您解密查询路径,这是预期的行为。如果这不是您想要的,您将必须定义 HttpServletRequest 类型的方法参数并使用 自己解析查询HttpServletRequest.getQueryString()。
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |