使用GUICE-Jersey在GWT客户端和Restful后端进行会话管理

时间:2012-06-21 11:14:52

标签: gwt rest

我对GWTP中的会话管理几乎没有什么基本问题。

客户端:GWTP,服务器 - 使用Guice和Jersey的Restful WebServices。

当我使用RPC机制的后端服务时,应用程序会话管理很简单。但是,随着在Android上运行的GWT客户端和使用Jersey作为Restful Web服务公开的服务器端逻辑,我们如何维护会话,因为Restful WS是无状态的。现在我们如何在这种情况下实现用户会话?

2 个答案:

答案 0 :(得分:0)

关于会话管理,您使用GWT's RPCRequestFactory还是RequestBuilder没有区别。

无论您使用何种通信协议,网络中的通信基本上都是无状态的 传统上,会话管理是通过服务器端会话完成的 但是RESTfull服务不应该依赖服务器端会话,因为它违反了restful原则。 所以基本上有两种方法可以做到:

  1. 如果您不太关心违反其余原则,可以部署服务器端会话(有关详细信息,请参阅here)。
  2. 使用OAuth(https://wikis.oracle.com/display/Jersey/OAuth
  3. 以某种方式将每个请求的credentials/securityToken传递给您的后端。您可以使用GWTP的ClientActionHandlers
  4. 来实现

答案 1 :(得分:0)

在经过不同人的大量评论之后,我在这里想到了什么。

我的应用程序也可以从基于浏览器的应用程序和移动设备访问。应用程序首先在服务器中编写http会话管理,用于基于浏览器的应用程序。现在,在获得Mobile客户端的同时,我们已经实现了Rest Web服务,同时为移动设备和浏览器客户端提供了相同的服务层。

当用户使用移动设备登录时,我们正在创建一个唯一的身份验证令牌,我们将带有此令牌ID的http会话存储为app中的键值映射。稍后我们希望来自移动设备的每个用户请求都返回此令牌,并使用此令牌从map获取会话并继续。

有人对此方法有任何意见吗?

相关问题