如何自定义webservices扩展中的即用型实现错误消息,例如无效的" invalid_grant"和

2020-09-09 15:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我需要将所有应用程序故障都包装为自定义消息格式,并且需要采取相同的方法。

我无法捕获的场景是运行时异常和如下所示的开箱即用的Hyrbis实现

a)无效的登录名{" error":" invalid_grant"," error_description":"不良凭证"}

b)输入无效的产品,即该产品不存在。 [Http状态:400错误请求]

{"错误":[{"消息":"产品不能为空","类型":" IllegalArgumentError"}]}

有人可以建议适当的方法吗?

我尝试在自定义exceptionTranslationFilter和restHandlerExceptionResolver中捕获运行时异常,但无法捕获。

请建议我的方法是否错误。

我要显示所有错误情况的必需格式如下

{"错误":[{"消息":"试图创建重复的ID","原因":"多普特uid-Ausnahme(uid在Datenbank中的存在)","主题":" fs_duplicate_uid_exception"}] }

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我需要将所有应用程序故障都包装为自定义消息格式,并且需要采取相同的方法。

我无法捕获的场景是运行时异常和如下所示的开箱即用的Hyrbis实现

a)无效的登录名{" error":" invalid_grant"," error_description":"不良凭证"}

b)输入无效的产品,即该产品不存在。 [Http状态:400错误请求]

{"错误":[{"消息":"产品不能为空","类型":" IllegalArgumentError"}]}

有人可以建议适当的方法吗?

我尝试在自定义exceptionTranslationFilter和restHandlerExceptionResolver中捕获运行时异常,但无法捕获。

请建议我的方法是否错误。

我要显示所有错误情况的必需格式如下

{"错误":[{"消息":"试图创建重复的ID","原因":"多普特uid-Ausnahme(uid在Datenbank中的存在)","主题":" fs_duplicate_uid_exception"}] }

付费偷看设置
发送
4条回答
Climb_Ma
1楼-- · 2020-09-09 15:30

仅晚2年:),但我了解其他人正在寻找类似的答案。 正在更新一个类似的问题,并认为我也会回答这个问题,以便其他碰到这个问题的人受益。

关于您的有关OAUTH错误的第一个问题,

您要注意的json序列化来自Spring框架(spring-security模块)。 请查看OAuth2Exception类和负责序列化这些异常的注释OAuth2ExceptionJackson2Serializer。

您必须本质上创建自己的包装程序异常和自定义序列化程序,才能以所需的格式创建JSON。 您可以在此处找到示例 https://medium.com/ @ beladiyahardik7/spring-security-custom-oauth2exception-in-spring-b35a62af4d34

第二个错误

由于BaseController.handleErrorInternal中的转换,您注意到了它。 当找不到产品时,您将收到ModelNotFoundException,而该异常又被BaseController.handleModelNotFoundException捕获。 如果您希望对这些错误有更多的控制,我建议您对产品的存在进行早期验证,而将WebserviceValidationException与Errors对象一起抛出。 查看ProductDataValidator的示例和用法。

总而言之,您在基于OCC的Web服务上按以下顺序注意到了多层错误转换。

  • 由Spring-security处理的OAuth2Exception和OAuth2ExceptionJackson2Serializer

  • validationErrorConverter,用于处理WebserviceValidationException

  • 引发的任何验证错误。
  • webserviceExceptionConverter处理任何类型为WebserviceException的异常

  • exceptionConverter,用于其他以前的转换器未捕获的异常。

悠然的二货
2楼-- · 2020-09-09 15:20

嗨,我正在寻找与您的请求相同的请求,以了解我们如何自定义无效的登录错误?

哎,真难
3楼-- · 2020-09-09 15:10

您解决了吗?

空代码
4楼-- · 2020-09-09 15:09

您是否自定义了oauth服务器错误?

一周热门 更多>