Я хочу, чтобы пользователи перенаправляли на последнюю страницу, которую они запрашивали после аутентификации, но в случае нескольких запросов (защищенных и незащищенных) это не работает.Как я могу это исправить?
Я переопределил onAuthenticationSuccess метод SavedRequestAwareAuthenticationSuccessHandler, и он работает нормально, но у меня есть один случай - когда пользователь пытается открыть защищенный URL-адрес, он идет в форму входа, но не входит в систему для входамомент и вместо этого открывается незащищенная (обычная) ссылка.после этого он нажимает кнопку входа, проходит аутентификацию и перенаправляется обратно на самый первый защищенный URL (но я хочу, чтобы он был перенаправлен на последний, незащищенный.
Я делаю что-то подобное, чтобы сделать этоэто:
public class myHandler extends SavedRequestAwareAuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(
HttpServletRequest request,
HttpServletResponse response,
Authentication authentication
) throws IOException, ServletException {
setUseReferer(
!request.getHeader("referer").contains("/login")
);
super.onAuthenticationSuccess(request, response, authentication);
}
}
например:
пользователь пытается / администрация
получает / логин
клики / ссылка about_us
кликикнопка "войти" и переходит в / логин
перенаправлен в / администрацию (но я хочу, чтобы он вернулся в / about_us)
Как я могу это сделать?