如何更改 ResponseStatusException 的 ErrorAttributes?

mem*_*und 5 java spring spring-mvc spring-boot spring-web

如何更改抛出时暴露的错误属性ResponseStatusException

特别是我想隐藏exception,errorstatus输入 json,但仅在生产期间。

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

结果:

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

use*_*900 4

它是使用DefaultErrorAttributes配置的

public DefaultErrorAttributes(boolean includeException)

创建一个新DefaultErrorAttributes实例。

参数:

includeException - 是否包含“异常”属性

注意默认是没有

public DefaultErrorAttributes()
Run Code Online (Sandbox Code Playgroud)

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

请参阅自定义错误示例