通过Keypress / Mouse事件重置Websphere中的会话超时

时间:2014-01-17 02:01:57

标签: session java-ee websphere-7 httpsession

我已将WebSphere中的会话超时设置为3分钟(考虑。我设置的实际超时为30分钟)。我保持应用程序打开,只是将鼠标移到J2EE应用程序上并进行一些不会发生的按键操作提交任何页面。即使在3分钟后,应用程序的会话仍然保留。我需要确认当某些鼠标移动/按键发生时如何保留会话?没有请求发送到服务器或没有提交页面提交。

我的应用程序的会话超时仅在服务器中维护。

感谢。

1 个答案:

答案 0 :(得分:1)

这听起来像是因为WebSphere使用LTPA令牌进行身份验证。总结:

  • 当网络会话过期时,用户凭据未过期(您 没有被迫重新登录)。这是由于WebSphere LTPA令牌的实现以及有关这方面的更多信息将在本文中介绍 IBM文档。
  • 当LTPA令牌到期时,用户凭据 已过期(您被迫重新登录)。
  • 网络会话超时是 相对于用户活动。也就是说,当用户活动时它重置为0 被检测到。
  • LTPA令牌超时与用户活动无关。它 在创建日期之后的任何时间都会超时 用户活动正在进行中。

来自http://www-01.ibm.com/support/docview.wss?uid=swg21078845

问题3

我想强制我的用户在设置“不活动超时”时间后重新登录。 WebSphere Application Server应该如何处理会话超时和LTPA超时。

回答3

在以下developerworks文章的第9项中查看此问题的答案: http://www.ibm.com/developerworks/websphere/techjournal/1003_botzum/1003_botzum.html

通过该链接,您将了解到:

9-我想强制我的用户在设置“不活动超时”时间后再次登录。 WebSphere Application Server应该如何处理会话超时和LTPA超时?

WebSphere Application Server LTPA令牌基于登录会话的生命周期而不是基于不活动而到期。因此,如果用户在一段时间内未执行任何操作,那么WebSphere Application Server登录会话将不会过期。但是,HTTPSession会根据不活动状态到期。如果在您的应用程序中您需要使用基于空闲的应用程序到期,则必须在应用程序中明确地对其进行编码。您可以捕获用户到达过期会话(实际上是新会话)并强制他们再次登录(如果您认为有必要)。请记住,这样做会破坏跨应用程序的单点登录。

第二种方法是第一种方法略有变化,即使用HTTPSession.getLastAccessTime()来计算上次客户端请求何时发生。如果时间过去太远,您当然可以通过访问并强制进行新的身份验证。 通过使用servlet过滤器,可以使这些方法中的任何一种对应用程序代码透明。

应该注意,IBMTivoli®AccessManager提供基于生命周期和空闲的身份验证会话超时。

用户经常会问为什么WebSphere Application Server以这种方式工作。为什么不能超时空闲登录会话?原因是WebSphere Application Server基本上是一个松散耦合的分布式系统。参与SSO域的应用程序服务器不需要相互通信。他们甚至不必在同一个牢房里。因此,如果要限制LTPA令牌(也称为SSO令牌)的空闲生存期,则必须使用每个请求的最后一次使用时间更新令牌本身(或者可能是在一分钟间隔期间看到的第一个请求)。这意味着令牌本身会经常更改(意味着浏览器会经常接受新的cookie),并且当看到验证它时,WebSphere Application Server必须解密并验证入站令牌。这可能很昂贵(今天的WebSphere Application Server仅在每个应用程序服务器上首次使用时验证令牌)。通过巧妙的缓存等解决这些问题并非不可能,但这不是WebSphere Application Server今天的工作方式。