我正在服务器端处理会话,我可以通过使用适配器端代码
来管理它var cookie = WL.Server.getClientRequest().getHeader('Cookie');
var request = WL.Server.getClientRequest();
var session = request.getSession();
var sessionid = session.getId();
但问题是每次我点击适配器我在服务器端获得相同的会话。 如何在适配器端杀死该会话,以便每次我点击适配器时都可以创建新会话。
我尝试了session.invalidate()但对我没用。在这样做之后,我也在服务器端获得相同的会话。
请建议在服务器端或适配器端需要做什么。
答案 0 :(得分:0)
如果你能准确解释你想要达到的目标,那将会有很大帮助。事实上,你没有足够清楚地解释它。
如果您正在谈论Worklight Server和后端之间的服务器,那么:
要获取发送到后端的每个适配器请求的新会话,您需要在相关过程中将connectAs
属性设置为endUser
:
<procedure name="getStories" connectAs="endUser"/>
请参阅以下博文,详细解释: Configuring HTTP adapters for stateless/stateful backend connectivity and user identity propagation
如果您在客户端调用适配器时实际上正在讨论创建的会话,那么您就无法在适配器级别上使会话无效。获得新会话的唯一方法是重新打开应用程序(假设客户端和Worklight Server之间的会话已经过期,您将获得新会话)。
答案 1 :(得分:0)
您所描述的是默认的WL服务器行为。当您第一次点击服务器时,您将获得一个新会话,并且该会话将被重用,直到超时为止。