Ошибка отправки с сообщением OncePerRequestFilter

#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(«Ваша учетная запись заблокирована»);