Как я могу изменить атрибуты ошибок, которые появляются при бросании ResponseStatusException?
Особенно я хочу скрыть типы exception, error и status в json, но только во время производства.
@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"
}
Да, у меня несколько профилей.
Могу я вас еще раз спросить: не использовать Spring Boot?
Извините, да, я тоже использую пружинный ботинок. Добавил тег.




Его настраивают с помощью DefaultErrorAttributes
public DefaultErrorAttributes(boolean includeException)
Create a new
DefaultErrorAttributesinstance.Parameters:
includeException - whether to include the "exception" attribute
Обратите внимание, что по умолчанию
public DefaultErrorAttributes()
Create a new
DefaultErrorAttributesinstance that does not include the "exception" attribute.
Значит, я бы переопределил DefaultErrorAttributes, errorAttributes.remove("path") и т. д.?
@membersound Или позвоните в Map<String, Object> errorAttributes = super.getErrorAttributes(requestAttributes, false);
@membersound IMO, этот ответ явно решает проблему: создайте реализацию DefaultErrorAttributes для каждого профиля.
Я полагаю, у вас есть несколько профилей, таких как: dev, prod ... Кроме того, вы не используете Spring Boot.