【问题标题】:How to get the @RequestBody in an @ExceptionHandler (Spring REST) 2.0如何在 @ExceptionHandler (Spring REST) 2.0 中获取 @RequestBody
【发布时间】:2020-07-20 03:11:42
【问题描述】:

我知道How to get the @RequestBody in an @ExceptionHandler (Spring REST) 存在,但我正在寻找一个稍微不同的解决方案。当我的服务获得 403 时,它不会进入我的 @Controller 类。因此,我怎样才能从传入的请求正文中获取一些东西,因为这种情况实际上永远不会影响我的代码?它只会命中生成的 CGLIB 代码。

【问题讨论】:

  • 特别是对于 403,我会推荐这个:baeldung.com/exception-handling-for-rest-with-spring#denied
  • 该文章的哪一部分推荐用于此问题?
  • 链接的:#denied - 第 6 章 :) ...6.2!
  • 我已经阅读了那部分,这基本上就是我正在做的事情。问题是,我如何从中获得@RrequestBody?输入到此服务的任何对象都有一个父类,客户端需要在该父类中输入一个唯一 ID。我需要从输入请求中获取该 ID,以便在返回错误之前记录它。因此,当我的消费者抱怨该特定 ID 存在问题时,我可以告诉他们他们收到了 403。
  • 一旦你有一个HttpServletRequest(注入你的错误处理程序),你可以尝试"Get the POST request body from HttpServletRequest"

标签: spring spring-boot exception spring-security


【解决方案1】:

最终我能够通过创建一个扩展 RequestBodyAdviceAdapter 的类来解决这个问题。

【讨论】:

  • Brian 能否请您添加有关该解决方案的更多详细信息?
猜你喜欢
  • 2017-09-16
  • 2020-07-26
  • 1970-01-01
  • 2017-12-05
  • 2018-06-16
  • 1970-01-01
  • 2018-12-10
  • 2011-09-10
  • 2019-02-23
相关资源
最近更新 更多