Я пытаюсь создать простую систему регистрации, когда наш клиент обращается к API. Мы используем Spring для подключения контроллеров и обработчиков. Я смотрю на функциональность Spring Interceptor, чтобы написать метод postHandle (). К сожалению, в отличие от всех примеров кода, которые я видел здесь, HttpServletResponse не имеет, например, метода getStatus (). Я предполагаю, что мы используем не ту версию Java или что-то в этом роде.
Нам нужны тело и код ответа от объекта HttpServletResponse: как их получить?
РЕДАКТИРОВАТЬ: Мы пошли с фильтром:
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
RichHttpServletResponse richResponse=new RichHttpServletResponse((HttpServletResponse)response);
chain.doFilter(request, richResponse);
}
RichHttpServletResponse принимает ответ сервлета в качестве аргумента в своем конструкторе и переопределяет некоторые методы, такие как sendError (), и передает значения фактическому ответу сервлета. XML-файл webmvc-config выглядит примерно так:
<bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">
<sec:filter-chain-map path-type="ant">
<sec:filter-chain pattern="/**"
filters="requestObjectFilter" />
</sec:filter-chain-map>
</bean>
С определением bean-компонента ниже.