@RequestBody如何处理请求中的加密jSON结构

时间:2018-02-13 14:45:11

标签: java spring spring-mvc

我有一个要求,JSON将被加密并在其他客户端的请求正文中添加。 在服务器端,我有一个使用此方法的REST API。

createOrder(@RequestBody(required = true) final OrderDTO item), @RequestParam(required = false) final String flag) {.....}

架构正在使用Spring。

现在可以做什么来解密传入的JSON,以便@RequestBody可以正确地将它分配到OrderDTO。

尽早帮助详细说明。

1)是否可以使用过滤器或其他一些机制?

2)方法createOrder()仅加密@RequestBody参数。其余参数将以明文形式从客户端发送。

2 个答案:

答案 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并在控制器方法体中对其进行解密和反序列化。这可能是"丑陋",但可能更简单,更快。)