【问题标题】:Spring Session Remember Me春季会议记住我
【发布时间】:2017-09-12 00:53:02
【问题描述】:

我已经尝试过春季课程的示例,这真的很有趣。

我正在尝试执行以下操作,我正在尝试将 spring 会话插入 restful 服务中,我希望根据请求为会话 id 设置不同的 TTL

例如,使用我的宁静服务的客户可能已经记住了我的选项开/关。

当记住我时,我想将 TTL 设置为 90 天,而对于记住我,我想将 TTL 设置为 5 分钟,我们如何在春季会议中实现这一点。

另外,我们如何管理(限制)用户的并发会话,是可以通过与 Spring Security 集成来实现并发会话,还是与 Spring 会话中提供的相同功能。

请提出建议,非常感谢任何帮助

【问题讨论】:

    标签: spring-security spring-session


    【解决方案1】:

    这可以通过设置HttpSession.setMaxInactiveInterval(int timeInSeconds) 来完成。例如,在对用户进行身份验证后,您可以执行以下操作:

    int someTime = getExpireBasedOnMyCriteria();
    httpServletRequest.getSession().setMaxInactiveInterval(someTime);
    

    【讨论】:

    • 谢谢你,Rob,我会试试这个,并会及时通知你结果
    • 我可以使用 spring security 记住我功能还是建议只设置长 TTL?
    • 您可以使用 Spring Security 的记住我功能,但是当您拥有 Spring Session 时,确实应该需要。您使用 Spring Security 中的记住我的主要原因是确保服务器在内存中没有大量 HTTP 会话。由于 Spring Session 将其卸载到另一个数据存储(即 Redis)中,因此问题已经解决了。
    猜你喜欢
    • 2018-11-30
    • 2015-04-11
    • 2011-12-31
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多