Как добавить один и тот же параметр для нескольких идентичных страниц входа в систему, если аутентификация не удалась? - PullRequest
0 голосов
/ 29 мая 2019

У меня одна и та же форма входа на разных конечных точках: /welcome, /login

Если я установлю failUrl (/welcome?error), он также перенаправит /login на /welcome?error при аутентификациитерпит неудачу вместо /login?error

Я думаю, что мне нужно реализовать failHandler, но как я могу извлечь фактическую конечную точку входа в систему из HttpServletRequest?

Я хотел бы что-то вроде этого:
response.sendRedirect(/[actual_login_endpoint]?error);

1 Ответ

0 голосов
/ 29 мая 2019

Я решил это. Мне пришлось отправить скрытый атрибут с формами входа. Я не думаю, что есть более простое решение.

@Override
public void onAuthenticationFailure(
        final HttpServletRequest request,
        final HttpServletResponse response,
        final AuthenticationException exception) throws IOException, ServletException {
    if (request.getParameter("loginForm").equals("welcome")) {
        response.sendRedirect("/welcome?error");
    } else if (request.getParameter("loginForm").equals("login")) {
        response.sendRedirect("/login?error");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...