我有一个要求,JSON将被加密并从其余客户端添加到请求正文中。
在服务器端,我有使用此方法的REST API。createOrder(@RequestBody(required = true) final OrderDTO item), @RequestParam(required = false) final String flag){.....}
该架构正在使用Spring。
现在可以做什么来解密传入的JSON,以便@RequestBody
可以将其正确分配到OrderDTO中。
请尽早详细帮助。
1)是否可以使用Filter或其他某种机制?
2)方法createOrder()仅@RequestBody参数将被加密。其余参数将从客户端以明文形式发送。
最佳答案
您需要拦截传入的HttpServletRequest
。
唯一的方法是注册Filter
,并使用HttpServletRequest
的自定义实现包装实际的HttpServletRequestWrapper
。
您可以覆盖getReader()
方法并提供BufferedReader
。
可以使用包含解密的请求正文的BufferedReader
构造StringReader
(您需要先完整读取原始的BufferedReader
)。
@Rich方法更合适。
关于java - @RequestBody如何处理请求中的加密jSON结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48769400/