Вход в 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" />

Большое спасибо, мистер Балус.

Другие вопросы по тегам