#spring #spring-boot #filter
#spring #пружинный ботинок #Фильтр
Вопрос:
Здравствуйте, я использую OncePerRequestFilter, и мне нужно использовать в нем функцию sendError, но сообщение об ошибке не отправляется… только статус кода…
@Override
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
try {
if (someCondition) {
httpServletResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Your account is locked" );
return;
}
} catch (Exception e) {
e.printStackTrace();
}
filterChain.doFilter(httpServletRequest, httpServletResponse);
return;
}
Есть ли способ решить эту проблему?
Ответ №1:
Пожалуйста, добавьте в свое приложение следующее.свойства:
server.error.include-message=always
Это всегда будет включать сообщение об ошибке вместе с кодом состояния в ваших ответах на ошибки.
Комментарии:
1. Не удается разрешить свойство конфигурации ‘server.error.include-message’
2. Хороший совет. Но отсутствует важная информация:
server.error.include-message: since version 2.3, Spring Boot hides the message field in the response to avoid leaking sensitive information; we can use this property with an always value to enable it
Ответ №2:
Я просто решил это, добавив
HttpServletResponse.getWriter().write(«Ваша учетная запись заблокирована»);