如何更改ResponseStatusException的ErrorAttributes?

时间:2018-11-06 12:22:35

标签: java spring spring-mvc spring-boot spring-web

如何更改抛出ResponseStatusException时公开的错误属性?

特别是我想在json中隐藏exceptionerrorstatus类型,但仅在生产期间隐藏。

    @RestController
    public class MyController {
       @GetMapping("/test")
       public Object get() {
          throw new org.springframework.web.server.ResponseStatusException(
                 HttpStatus.Forbidden, "some message");
       }
    }

结果:

{
    "timestamp": "2018-11-06T12:16:50.111+0000",
    "status": 403,
    "error": "Forbidden",
    "exception": "org.springframework.web.server.ResponseStatusException",
    "message": "some message",
    "path": "/test"
}

1 个答案:

答案 0 :(得分:1)

使用DefaultErrorAttributes

进行配置

public DefaultErrorAttributes(boolean includeException)

  

创建一个新的DefaultErrorAttributes实例。

     

参数:

     

includeException-是否包含“ exception”属性

请注意,默认值为不带

public DefaultErrorAttributes()
  

创建一个不包含“ exception”属性的新DefaultErrorAttributes实例。

请参见example of customizing error