Обновление/перенаправление страницы Spring MVC AngularJS

Я использую angularjs с spring mvc в своем приложении. Это одностраничное приложение, в котором есть кнопка входа и несколько вкладок. Вкладки не видны, пока пользователь не войдет в систему. После того, как пользователь войдет в систему, вкладки будут видны (кнопка входа не будет видна), и пользователь сможет перемещаться и использовать функции на любой вкладке. URL-адрес всех этих действий будет одинаковым (например: www.xyz.com/context/).

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

Я настроил управление весенними сессиями, как показано ниже.

<security:session-management invalid-session-url="/invalidSession">
     <security:concurrency-control expired-url="/" />
</security:session-management>

По истечении сеанса у меня есть контроллер spring mvc, настроенный для его обработки. Как тот, что ниже.

@RequestMapping(value="/invalidSession", method = RequestMethod.GET)
public ModelAndView invalidSession () {
    ModelAndView model = new ModelAndView("redirect:/");
    model.setStatus(HttpStatus.);
    return model;
}

Хотя этот метод вызывается по истечении сеанса, перенаправление не сбрасывает мою страницу в исходное состояние, когда видна только кнопка входа. Скорее, он остается в том же состоянии на вкладке №. 3, а все остальные вкладки все еще видны. Если я нажимаю кнопку обновления браузера, все работает нормально.

Я также пытался использовать model.setStatus(HttpStatus.RESET_CONTENT); в приведенном выше методе контроллера, он все еще не работает.

Я рассмотрел вопрос в Spring security и угловой перенаправление javascript для входа в систему page, но это немного сложно для моего требования, а мое требование довольно простое. Я думаю, мы должны справиться с этим с помощью управления сеансом Spring с соответствующим перенаправлением, где он сбрасывает мою страницу.

Как я могу этого добиться?


person Maz    schedule 05.03.2017    source источник
comment
что произойдет, если сеанс истечет, они останутся на той же странице? или на таб3? не могли бы вы поделиться своим html-кодом?   -  person Abdullah Al Noman    schedule 06.03.2017
comment
Он остается на вкладке 3. Я нашел альтернативное решение, которое соответствует моим требованиям. Я разместил ниже.   -  person Maz    schedule 06.03.2017


Ответы (1)


Ok. Я выбрал угловой подход. Я использовал компонент ng-idle, как описано в время ожидания и управление сеансом Angular.

Кроме того, я удалил весенний тег управления сеансом, поскольку ng-idle решает мое требование.

person Maz    schedule 06.03.2017