Tomcat отправляет HTML вместо сообщения об ошибке фильтра сервлета - PullRequest
0 голосов
/ 10 октября 2019

У меня есть служба REST (Spring MVC), которая вызывается из RestTemplate. В приложении REST есть фильтр сервлетов, который что-то проверяет и может отправить 401 с сообщением об ошибке.
В этом случае я получаю исключение HttpClientErrorException в RestTemplate, которое в порядке. Что не в порядке, так это то, что я не получаю обратно сообщение об ошибке, которое я отправил обратно в фильтре сервлетов, но тело ответа REST содержит следующий HTML-код:

<html lang="en">
    <head>
        <title>HTTP Status 401 – Unauthorized</title>
        <style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style>
    </head>
    <body>
        <h1>HTTP Status 401 – Unauthorized</h1>
        <hr class="line" />
        <p>
            <b>Type</b> Status Report</p>
        <p>
            <b>Message</b> Access Denied</p>
        <p>
            <b>Description</b> The request has not been applied because it lacks valid authentication credentials for the target resource.</p>
        <hr class="line" />
        <h3>Apache Tomcat/9.0.8</h3>
    </body>
</html>

, который генерируется и отправляется Tomcat. Код, который я использую в фильтре сервлетов для отправки обратно кода ошибки и сообщения, выглядит следующим образом:

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
    ...
    catch(...) {
        response.sendError(errorCode, message);
        return;
    }
    ...
}

Мой вопрос: почему я не получил сообщение об ошибке на стороне клиента? Я использую Spring Boot (1.5.8.RELEASE). Насколько я знаю, в Любая подсказка, пожалуйста? Также Как я мог отладить, когда мой ответ был угнан?

Спасибо,
V.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...