我读过REST 服务应该是无状态的,但我们正在尝试在现有 Web 应用程序附近实现移动服务,因此我们试图保持相同的流程并保持一致。
具体来说:
1) 登录
我们检查用户名和密码,“创建”一个会话并使用 sessionid 响应
然后
2) 选择传递 sessionid 的角色
我们将角色信息存储在会话中
等等。
这可能不是最好的方法,但对于我们的案例来说会更简单。
这可能吗?如何获得 Spring/Weblogic 的会话?
感谢您提供任何信息!
我读过REST 服务应该是无状态的,但我们正在尝试在现有 Web 应用程序附近实现移动服务,因此我们试图保持相同的流程并保持一致。
具体来说:
1) 登录
我们检查用户名和密码,“创建”一个会话并使用 sessionid 响应
然后
2) 选择传递 sessionid 的角色
我们将角色信息存储在会话中
等等。
这可能不是最好的方法,但对于我们的案例来说会更简单。
这可能吗?如何获得 Spring/Weblogic 的会话?
感谢您提供任何信息!
会话在某种程度上是具有超时的缓存。你可以使用whirly缓存。code.google.com/p/whirlycache/ 在创建时可以指定超时和最大项目数。
当您获得有效登录时,请生成一个 10 位或更多位的随机数,确保其不在缓存中(如果存在则重新创建一个随机数......意味着在当前缓存中是唯一的)。[登录时还可以检查项目数以确保未达到最大值 - 如果它接近则发送警报意味着您的活跃用户比预期的多或人们没有注销 - 可能需要另一个带有密钥作为活跃用户 ID 的缓存,所以看看是否相同这个人还没有一个活跃的会话,所以如果同一个用户已经有一个活跃的会话,则拒绝,在注销时删除两者]
现在制作您的会话对象(一个好主意是一个带有用户 ID、安全角色等的轻量级用户对象,具体取决于您的业务需求)并将其存储在缓存中。
现在,当调用其他方法时,它们应该接受会话 ID,检查缓存是否有匹配的会话 ID 键,获取用户对象并继续验证和处理。