我有一个要求,JSON将被加密并在其他客户端的请求正文中添加。 在服务器端,我有一个使用此方法的REST API。
createOrder(@RequestBody(required = true) final OrderDTO item), @RequestParam(required = false) final String flag)
{.....}
架构正在使用Spring。
现在可以做什么来解密传入的JSON,以便@RequestBody
可以正确地将它分配到OrderDTO。
尽早帮助详细说明。
1)是否可以使用过滤器或其他一些机制?
2)方法createOrder()仅加密@RequestBody参数。其余参数将以明文形式从客户端发送。
答案 0 :(得分:0)
您需要拦截传入的HttpServletRequest
您可以这样做的唯一方法是注册Filter
,并使用HttpServletRequest
的自定义实现包装实际的HttpServletRequestWrapper
。
您可以覆盖getReader()
方法并提供BufferedReader
BufferedReader
可以使用包含解密请求正文的StringReader
构建(您需要先完全阅读原始BufferedReader
)。
@Rich方法更合适。
答案 1 :(得分:0)
您需要编写自定义GET https://graph.microsoft.com/beta/$metadata
。 HttpMessageConverter API负责将bean转换为&来自HTTP实体(查询参数,请求体等)
您需要编写一个解密JSON并将其传递给Jackson或类似的转换器。
见
(你也可以接受请求体作为String并在控制器方法体中对其进行解密和反序列化。这可能是"丑陋",但可能更简单,更快。)