如何更改引发ResponseStatusException
时公开的错误属性?
特别是我想在json中隐藏exception
,error
和status
类型,但仅在生产期间隐藏。
@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"
}
最佳答案
使用DefaultErrorAttributes进行配置public DefaultErrorAttributes(boolean includeException)
创建一个新的DefaultErrorAttributes
实例。
参数:
includeException-是否包含“exception”属性
注意默认是不带
public DefaultErrorAttributes()
创建一个不包含“exception”属性的新的
DefaultErrorAttributes
实例。参见example of customizing error