Spring Boot的BasicErrorController以以下格式返回默认的JSON错误消息
{"timestamp":"2019-0214T16:13:47.568+0000","status":401,"error":"Unauthorized", "message":"Unauthorized","path":"/xyz/rest/getResult"}
我想在JSON响应中添加一个新字段,说“ loginSuccess”:“ false”。由于这是一个错误,因此它将始终为假。 为此,我编写了一个新类ExceptionResponse,其中添加了定义错误消息{时间戳,状态,错误,消息,路径,loginSuccess}的字段。
然后我写了一个ControllerAdvice
@ControllerAdvice
public class ErrorHandlingController {
@ExceptionHandler(Exception.class)
public ResponseEntity<ExceptionResponse> generalException(Exception e) throws Exception {
ExceptionResponse exceptionResponse = new ExceptionResponse();
exceptionResponse.setLoginSuccess (false); // Just need to add this extra field
exceptionResponse.setMessage(e.getMessage());
exceptionResponse.setError(e.getCause());
exceptionResponse.setTimestamp(LocalDateTime.now());
exceptionResponse.setStatus(??);
return new ResponseEntity<ExceptionResponse>(exceptionResponse, HttpStatus.??);
}
}
请建议应将什么添加到exceptionResponse.setStatus(??);因此将其设置为返回默认响应,在这种情况下为401。我在Exception e中找不到该代码。同样,在这种情况下,与BasicErrorController返回的状态(即401)匹配的HttpStatus代码。还建议是否有更好的方法,只需在默认响应中添加一个额外的参数。