【问题标题】:IBM WebSphere Application/Portal Servers, TAI and HttpSession and CookiesIBM WebSphere 应用程序/门户服务器、TAI 和 HttpSession 以及 Cookie
【发布时间】:2015-06-01 10:06:59
【问题描述】:

我有 IBM WAS 6.1 和 Portal 6.1。我还有一个 TAI,它在用户登录/注销门户时工作。我想在 TAI 中使用 HttpSession。很快我的任务就是下一个:当用户登录时,我想在内存中保存一些参数并作为键,我想使用 HttpSession 的 ID(或其他东西?)。

例如,httpsession 的用户登录 ID 是 "foo"。然后,用户登录并在门户中工作,然后按注销按钮,门户使用内部机械化注销用户,然后我的 TAI 捕获此请求,现在我有一个 ID 为 “bar” 的 http 会话。所以,WAS 改变了 http 会话。这意味着我不能使用 http 会话来保存任何参数,因为 WAS 会重新创建它以注销。但是我必须在用户登录时保存一些参数,并在他注销时使用它。

由于某些原因,我也不能使用 Cookie。知道如何根据 HttpSession 保存 ID 吗?

或者我必须知道谁(用户的门户 Uid)按下了 TAI 中的注销按钮。它也可以帮助我解决我的问题。

更新 #1。

另外,出于某种原因,WAS(?) 删除了自定义 cookie。我在 TAI 中添加了自定义 cookie 并删除了它,我找不到自己的 cookie。知道在哪里以及为什么吗?除了是和客户端之外还有http服务器,但我检查了它 - 他不应该删除它。

【问题讨论】:

  • 您想存储什么样的数据以便在注销期间重复使用?您也可以将安全上下文用作存储机制并在 TAI 期间构建自定义主题。然后信息存储在不可修改的上下文中,并且在注销时仍然可用
  • TAI 仅在未经身份验证的请求时调用。注销时不会调用它。所以你的方法通常是有缺陷的。您在注销后收到下一个未经身份验证的请求,这就是不同会话 ID 的原因(它是新的,不同的会话,以前的会话不再存在,因为它在注销时被销毁)。
  • Gas 我希望您想说 TAI 仅在尚未授权的受保护资源上调用。我同意在注销时不调用 TAI,但由于这是 Portal,他可以插入 LogoutFilter 链并满足他的需求(无论它们是什么)。而且我不会使用会话,因为它也可以在身份验证会话期间更改

标签: java websphere websphere-portal httpsession


【解决方案1】:

我没有解决有关 http 会话的问题,但我解决了 cookie 的问题。 正确的cookie:

Cookie cooky = new Cookie();
cooky.setPath("/");
cooky.setDomain("domain.com");

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2011-12-04
    • 2022-10-21
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多