Вход в Spring Security после истечения сеанса перенаправляет на последний AJA-запрос JSF и отображает свой XML-ответ <частичный-ответ> в виде простого текста
Я работаю с проектом, который использует Spring Security, Spring bean, JSF, PrimeFaces и Hibernate в комбинации.
На домашней странице я использую опрос, чтобы автоматически получать новейшие данные через каждые 10 секунд.
<h:form>
<p:poll interval="10"
listener="#{mailBean.refreshMail}"
update=":list-email"/>
</h:form>
Проблема заключается в том, что после входа на домашнюю страницу я открываю домашнюю страницу в другой вкладке и на этой вкладке нажимаю кнопку "Выйти", и она перенаправляется на страницу входа.
Несмотря на то, что сеанс заканчивается, опрос будет продолжать отправлять ajax-запрос и получать ответ через каждые 10 секунд.
Затем я подожду несколько секунд и снова нажму "Войти", чтобы перейти на домашнюю страницу, но на этот раз он показывает содержимое XML, которое является частичным ответом на опрос.
Если я обновлю страницу, она снова станет нормальной. Я не знаю, почему это так выглядит.
Я потратил много времени, пытаясь решить эту проблему, но не смог. Пожалуйста, помогите мне. Спасибо.
1 ответ
Как сказал г-н BalusC, Spring Security будет перенаправлять на последний запрос после входа в систему. Поскольку я использовал опрос, он отправляет запрос ajax на домашнюю страницу через 10 секунд, и при повторном входе в систему он перенаправляет запрос ajax.
Чтобы решить эту проблему, я настраиваю файл безопасности xml следующим образом, чтобы он всегда перенаправлял на страницу по умолчанию после входа в систему.
<form-login
login-page="/login.html"
authentication-failure-url="/login.html?status=LOGIN_FAILURE"
default-target-url="/index.html"
always-use-default-target="true" />
Большое спасибо, мистер Балус.