Spring MVC AngularJS 页面 Refresh/Redirect

Spring MVC AngularJS Page Refresh/Redirect

我在我的应用程序中使用 angularjs 和 spring mvc。它是一个单页应用程序,其中有一个登录按钮和多个选项卡。除非用户登录,否则选项卡不可见。用户登录后,选项卡将可见(登录按钮将不可见),用户可以在任何选项卡下导航和使用功能。所有这些操作的 URL 将相同(例如:www.xyz.com/context/)。

我这里的会话管理有问题。如果会话在用户处于这些选项卡中的任何一个时过期,请说出选项卡号。 3,页面应重置为初始状态,其中登录按钮可见而选项卡不可见。

我已经配置了 spring 会话管理,如下所示

<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 和所有其他选项卡仍然可见。如果我点击浏览器刷新按钮,它工作正常。

我也试过在上面的controller方法中使用model.setStatus(HttpStatus.RESET_CONTENT);,还是不行

我已经完成了Spring security and angular javascript redirect to login page中的问题,但是对于我的要求来说有点复杂,而且我的要求很简单。我想我们应该能够通过 spring 的会话管理来处理它,并在重置我的页面时使用适当的重定向。

我怎样才能做到这一点?

好的。我采用了 angular 方法。我使用了 Angular session timeout and management.

中概述的组件 ng-idle

此外,我删除了 spring 会话管理标签,因为 ng-idle 解决了我的要求。