【问题标题】:Spring MVC AngularJS Page Refresh/RedirectSpring MVC AngularJS 页面刷新/重定向
【发布时间】:2017-07-25 17:12:39
【问题描述】:

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

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

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

我怎样才能做到这一点?

【问题讨论】:

  • 如果会话过期会发生什么,它们会停留在同一页面上吗?还是在 tab3 上?你能分享你的html代码吗?
  • 它保留在选项卡 3 中。我找到了适合我要求的替代解决方案。我已经在下面发布了。

标签: angularjs spring session-management


【解决方案1】:

好的。我采取了有角度的方法。我使用了 Angular session timeout and management 中所述的组件 ng-idle。

另外,我删除了 spring session-management 标签,因为 ng-idle 解决了我的要求。

【讨论】:

    猜你喜欢
    • 2013-03-06
    • 2017-11-20
    • 2015-05-22
    • 1970-01-01
    • 2020-12-31
    • 2018-03-23
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多