如何管理一个混合的Ruby / GWT系统的会议?(How do I manage sessions

2019-10-28 12:59发布

我现在有一个Ruby on Rails的系统,并有计划将它移植到GWT。 我们这样做之前,那是权力,希望有一个概念证明与被写在GWT表明,GWT可以使用并显示当前内容的网站的一部分。 数据的系统中的GWT部分的流动如下:

  1. 客户端发送一个RPC调用GWT服务器
  2. 服务器收到RPC调用,然后进行等效Ajax请求的Rails系统
  3. 服务器生成从Ajax请求的结果的Java对象,并将其传递回客户端

我遇到现在的问题是这两种系统管理用户会话数据。 我们只有1个Tomcat实例,并且拥有自己的会话类型,然后我们的红宝石系统使用为ActiveRecordStore会话数据存储在数据库中。

这里的问题是,当与红宝石系统Tomcat的系统会谈,如果GWT客户作出的登录请求,最后用户在从GWT系统日志在Rails的系统,就好像他们”执行所有传出的Ajax请求重当前用户,因为Tomcat的系统看起来像一个单一的客户端的Rails。

不管怎么说,我怎么可以把它这样,如果一个用户开始与Tomcat的系统会话,红宝石系统会意识到这一点,并有相当的会话,这样,即使Tomcat服务器是一个单一的客户端吧,轨道系统知道的,很多不同的用户用它从单一的客户端通信的事实。

Answer 1:

我认为解决这个最好的办法是使用而不是数据库Cookie存储会话。 Rails的支持这本身,其实它现在是有一段时间的默认cookie存储。 Cookie自身由服务器保密,以防止用户篡改签名。 我认为Rails的实现使用Ruby的编组转储/加载数据,所以你可能要实现它在Java中,或者您也可以使用侧面同样的想法,既实现自己的cookie管理器。

也可以只使用JRuby中从该Ruby代码在Java应用程序。



Answer 2:

我不知道回报率,但在大多数网络技术会话使用cookie维持。 如果您保存您的Java服务器多次调用饼干(给定用户)到你的回报率情况下,你应该都不错。



文章来源: How do I manage sessions in a hybrid Ruby/GWT system?