2015-02-04 2 views
2

Я работаю с проектом, использующим Spring Security, Spring bean, JSF, PrimeFaces и Hibernate в комбинации ,Spring Security login после истечения срока действия сеанса перенаправляет последний запрос JSF ajax и отображает ответ XML-ответа с частичным ответом, как обычный текст

На домашней странице я использую опрос, чтобы автоматически получать новейшие данные каждые 10 секунд.

<h:form> 
    <p:poll interval="10" 
      listener="#{mailBean.refreshMail}" 
      update=":list-email"/> 
</h:form> 

Проблема заключается в том, когда я войдите на домашнюю страницу, я открыть домашнюю страницу в другой вкладке и в этой вкладке, я нажимаю срубы, и это перенаправление на страницу регистрации.

Несмотря на то, что сессия завершается, опрос будет продолжать отправлять запрос ajax и получать ответ каждые 10 секунд.

Затем я подожду несколько секунд и снова войдите в систему, чтобы перейти на домашнюю страницу, но на этот раз он показывает содержимое XML, которое является частичным ответом опроса.

Here is the image link:enter image description here

Если я обновить страницу, она снова становится нормальным. Я не знаю, почему это выглядит так.

Я потратил много времени, пытаясь решить эту проблему, но не смог. Пожалуйста, помогите мне. Спасибо.

+0

@BalusC, спасибо, что сделал мой вопрос более конкретным. У вас есть решения для этой проблемы? Вы когда-нибудь сталкивались с этим раньше? –

+0

Я действительно понимаю проблему, но я понятия не имею, как ее решить, поскольку я не делаю Spring Security. – BalusC

+0

Имеет ли это какое-либо отношение к фазе Восстановить вид? Почему JSF отображает XML вместо html? –

ответ

2

Как сказал г-н BalusC, Spring Security будет перенаправляться на последний запрос после входа в систему. Потому что я использовал опрос, поэтому он делает запрос ajax на домашнюю страницу через 10 секунд, и когда я снова вхожу в систему, он будет перенаправлен на запрос ajax.

Чтобы решить эту проблему, я настраиваю файл безопасности как следующий, чтобы он всегда перенаправлялся на страницу по умолчанию после входа в систему.

<form-login 
    login-page="/login.html" 
    authentication-failure-url="/login.html?status=LOGIN_FAILURE" 
    default-target-url="/index.html" 
    always-use-default-target="true" /> 

Большое вам спасибо, г-н BalusC.

Смежные вопросы