【问题标题】:struts 2 TokenInterceptor Form Tokensstruts 2 TokenInterceptor Form Tokens
【发布时间】:2012-08-27 09:59:28
【问题描述】:

在我的 Web 应用程序中,我正在使用基于 Cookie 的会话,因此该会话在所有浏览器选项卡之间共享,有没有办法限制用户使用令牌一次访问一个选项卡中的应用程序(令牌拦截器)?在新选项卡中打开将使之前的选项卡页面无效(即所有应用程序 jsp 页面,包括登录页面)

【问题讨论】:

    标签: forms struts2 token access-token


    【解决方案1】:

    简而言之,这是不可能的,我想到的唯一解决方案是通过动态编写 URL 使用 sessionID 来强制用户使用应用程序的单个实例。 我不确定您为什么需要这个以及您的用例到底是什么。如果我是正确的,spring security 中有这样的功能可以帮助我们为每个登录用户只保留一个实例,并且您只需要在 spring 中设置一个属性-security xml 文件,如

    <session-management>
            <concurrency-control max-sessions="1" />
    </session-management>
    

    有关详细信息,请参阅这些线程

    【讨论】:

    • 我不想有基于标签的单独会话。让它成为在所有选项卡之间共享的一个会话。在表单中使用struts令牌怎么样..这样我可以为一个特定的表单实现它,假设如果在第二个选项卡中再次打开相同的表单,那么表单令牌将在前一个选项卡中过期。我想知道,如果可能的话,有什么方法可以为整个应用程序实现它??
    • 你能解释一下你到底想达到什么目标吗?
    • 为什么我要实现这一点,以防用户关闭浏览器选项卡而不注销(终止会话)。下一次,它可能会落入一些坏人手中,因为会话仍然存在。我希望每次都进行适当的身份验证..所以我能想到的是整个应用程序的基于令牌的表单..如何在 struts 中实现它,有什么想法吗?
    • 这与 S2 无关,您需要在用户关闭最后一个浏览器窗口时向服务器发送某种消息,而不是让会话无效。
    猜你喜欢
    • 2011-03-24
    • 1970-01-01
    • 2016-10-10
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多