Java IBM WebSphere应用程序/门户服务器、TAI和HttpSession以及cookie

Java IBM WebSphere应用程序/门户服务器、TAI和HttpSession以及cookie,java,websphere,websphere-portal,httpsession,Java,Websphere,Websphere Portal,Httpsession,我有IBM WAS 6.1和Portal 6.1。此外,我还有一个TAI,当用户登录/注销门户时,它可以工作。我想在TAI与HttpSession合作。很快,我的下一个任务就是:当用户登录时,我想在内存中保存一些参数,并且作为一个键,我想使用HttpSession的ID(或者其他什么?) 例如,httpsession的用户日志id为“foo”。Than,用户登录并在门户中工作,然后按注销按钮,门户注销用户使用内部mechanize和Than my TAI捕获此请求,现在我有一个Id为“bar”的

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

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

另外,由于某些原因,我不能使用Cookies。知道如何基于HttpSession保存ID吗

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

更新#1.


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

我并没有解决有关http会话的问题,但我用cookie解决了问题。 右cookie:

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

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