“消息”字段在错误响应弹簧启动中为空

2022-09-01 05:49:20

我已经处理了像这样的未经授权的异常

@ResponseStatus(value= HttpStatus.UNAUTHORIZED)
public class UnauthorizedException extends RuntimeException {
    public UnauthorizedException(String message) {
        super(message);
    }
}

但是当我抛出错误时,如下所示

throw new UnauthorizedException("Invalid credentials");

我在响应中得到空的错误消息,如下所示

{
    "timestamp": "2020-05-27T13:44:58.032+00:00",
    "status": 401,
    "error": "Unauthorized",
    "message": "",
    "path": "/auth/register"
}

我尝试使用,

throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "Invalid credentials");

但结果还是一样的。当我添加spring-boot-devtools依赖项时,我也收到了堆栈跟踪的预期消息。我该如何解决这个问题?

春季版 : 2.3.0 Java 版本: 11.0


答案 1

好的,知道了,他们已将server.error.include-message的默认值更改为“从不”(请参阅此处的评论部分:Spring 2.3.0版本信息

此处列出了所有默认值:Spring Boot 参考文档

只需像这样配置您的 application.yaml(或属性)即可。

server:
  error:
    include-message: always
    include-binding-errors: always

请注意,显示错误消息可能会泄漏有关服务器实现的信息。


答案 2

推荐