Как вернуть разные ответы при обычном входе в ajax и в Spring Security 3 - PullRequest
0 голосов
/ 09 декабря 2010

Я создаю собственный 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);
    }
}

1 Ответ

3 голосов
/ 09 декабря 2010

Не могли бы вы просто переслать запрос:

request.getRequestDispatcher("myFile.jsp").forward(request, repsponse);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...