【问题标题】:Http Session for unauthenticated application未经身份验证的应用程序的 Http 会话
【发布时间】:2017-02-10 03:47:53
【问题描述】:

我正在实现一个 Web 应用程序,它对新用户来说有点未经身份验证,它将被另一个 Web 应用程序使用,即最终用户不直接使用,但父 Web 应用程序不在我的控制范围内。因此,通过我的网络应用,新用户可以通过提供他的个人联系方式来购买比他想要的产品,我正在为其实施会话管理。

所以我已经通过以下方式实现了这一点,并希望现在您的建议使其变得更好。

1)。一旦父 Web 应用程序重定向到我的 Web 应用程序 url,我将调用两个 servlet(由于框架结构)。

  • 第一个 servlet,如果有的话,将从 HttpSession 中删除 myUser 的旧对象。(因为我的应用程序中没有任何注销,并且读到 onbeforeunload 不可靠),它还会从Threadlocal(我已经实现了分别维护每个线程的状态)。

  • 之后,第二个 servlet 创建新对象并将其与 HttpSession 绑定,并使用该会话保存用户的间歇性数据以用于相关服务。

而且我知道 servlet 的每个服务方法都在单独的线程中运行,所以希望一个会话不会干扰另一个会话,因为这将是每个浏览器一个,由于会话 ID 的唯一性,如果我是,请纠正我错了

【问题讨论】:

  • 一般来说,我会说避免所有这些并使用 Spring OAuth2。
  • @chrylis 谢谢,但由于遗留问题,我不能这样做。
  • 你说你正在写一个新的应用程序。
  • 是的,但我必须遵循已成为父应用程序一部分的相同技术
  • 你好吗invoking the two servlets ?线程很大程度上取决于您调用的方式。

标签: java session servlets httpsession session-management


【解决方案1】:

您可以使用 servlet 过滤器来完成 Serlvet1 的工作,即,

如果有的话,从 HttpSession 中删除 myUser 的旧对象。(因为我的应用程序中没有任何注销,并且读到 onbeforeunload 不可靠)并且它还从 Threadlocal 中删除了 myUser 对象(我已经实现分别维护每个线程的状态)。

旧版应用程序将重定向到您的 Servlet 2,该 Servlet 2 将配置 servlet 过滤器。

通过添加 servlet 过滤器,控件将首先到达您的 servlet 过滤器,您可以在其中执行用户会话删除的逻辑并将控制传递给 servlet2

【讨论】:

    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2014-07-15
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多