2014-10-07 70 views
0

我处理在服务器端的会话,我能够通过使用适配器端代码工作灯6.1:如何在适配器级别的清除工作灯服务器会话

var cookie = WL.Server.getClientRequest().getHeader('Cookie'); 
    var request = WL.Server.getClientRequest(); 
    var session = request.getSession(); 
    var sessionid = session.getId(); 

来管理,但问题是每一个我是时间打到适配器我在服务器端获得相同的会话。 如何杀死适配器端的会话,以便每次点击适配器时都可以创建新会话。

我试过session.invalidate()但对我没用。做完这些之后,我也会在服务器端获得相同的会话。

请建议在服务器端或适配器端需要做什么。

回答

0

如果您能够准确解释您想要达到的目标,这将大有裨益。事实上,你没有足够清楚地解释它。


如果你在谈论工作灯服务器和后端,然后的服务器:

若要发送给后端的每个适配器请求获得一个新的会话,你需要设置connectAs属性到endUser对相关程序:

<procedure name="getStories" connectAs="endUser"/> 

请参阅下面的博客张贴这也解释了它的长度: Configuring HTTP adapters for stateless/stateful backend connectivity and user identity propagation


如果你实际上是在谈论会议客户端调用适配器时创造,那么你就不能在会议上的适配器级无效。获得新会话的唯一方法是重新打开应用程序(假设会话已经在客户端和Worklight Server之间过期,您将获得新会话)。

+0

我不希望每个适配器请求的新会话。我只是想在第一次打电话给任何适配器时进行新的会话,然后它应该在整个应用程序中都是一样的。 – 2014-10-07 12:34:47

+0

你是什么意思“第一次”你叫适配器?你需要更好地解释你想要做的事情。你特别写道:“我打到适配器,我在服务器端得到相同的会话。如何杀死适配器端的会话**,这样我可以在每次打到适配器时创建新的会话**。 – 2014-10-07 14:44:17

0

您所描述的是默认的WL服务器行为。您将在首次访问服务器时创建一个新会话,并且该会话将被重复使用,直至超时。

+0

因此,如果在我的应用程序中,我已经提供了注销的功能,那么我将如何杀死活动的会话并获得相同的新会话。 – 2014-10-08 04:34:10