我在服务器端处理会话,我能够通过使用适配器端代码来管理它
var cookie = WL.Server.getClientRequest().getHeader('Cookie');
var request = WL.Server.getClientRequest();
var session = request.getSession();
var sessionid = session.getId();
但问题是,每次我点击适配器时,都会在服务器端得到相同的会话。如何在适配器端终止会话,以便每次命中适配器时都可以创建新会话。
我尝试过session.invalidate(),但对我没有用。这样做之后,我在服务器端也得到了相同的会话。
请建议在服务器端或适配器端需要做什么。
发布于 2014-10-07 20:05:56
如果你能准确地解释你想要实现的目标,这将会有很大的帮助。事实上,你的解释还不够清楚。
如果您谈论的是Worklight服务器和后端之间的服务器,那么:
要获得每个发送到后端的适配器请求的新会话,您需要在相关过程中将connectAs
属性设置为endUser
:
请参考下面的博客文章,详细解释了这一点:Configuring HTTP adapters for stateless/stateful backend connectivity and user identity propagation
如果您实际讨论的是在客户端调用适配器时创建的会话,则不能在适配器级别上使会话无效。获取新会话的唯一方法是重新打开应用程序(假设客户端和Worklight服务器之间的会话已经过期,然后您将获得一个新会话)。
发布于 2014-10-07 23:21:37
您所描述的是默认的WL服务器行为。您将在第一次访问服务器时创建一个新会话,该会话将被重用,直到超时。
https://stackoverflow.com/questions/26232453
复制相似问题