Я использую 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 с соответствующим перенаправлением, где он сбрасывает мою страницу.
Как я могу этого добиться?