Я создаю собственный AuthenticationSuccessHandler, чтобы пользователи могли войти в систему с помощью Ajax, а также использовать обычный вход (для пользователей с отключенным JavaScript). Чтобы проверить, является ли это ajax-вызовом или обычным вызовом, я отправил дополнительный заголовок запроса.
Если это Ajax-вызов, я хочу вернуть другой код, как при обычном запросе. Этот результат должен прийти из файла JSP. Я мог бы отправить URL-адрес обратно, но пользователь должен сделать еще один запрос, чтобы получить данные. Как я могу прочитать вывод файла JSP из моего кода или это плохой дизайн?
Вот так я обрабатываю запрос.
@Override
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication auth) throws IOException,
ServletException{
if ("true".equals(request.getHeader("X-Ajax-call"))) {
response.getWriter().print("Output of jsp file should go here?");
response.getWriter().flush();
} else {
defaultHandler.onAuthenticationSuccess(request, response, auth);
}
}