我有一个要求,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/

10-10 23:57