分区资源和用户

时间:2011-01-13 10:32:12

标签: java spring oauth

我正在建立基于弹簧的系统,其中要求A组的用户保存在一组机器中,B组的用户在另一组机器中。 A组的服务器只保存那些组用户的数据,而另一组保存相同的数据。我目前设想了一个身份验证/重定向服务(登录服务),它将用户重定向到正确的服务器。因此,用户都可以登录login.example.com并重定向到a.example.com和b.example.com

问题在于,应该可以将用户从A组无缝迁移到B组,如果用户想要属于A组和B组,则必须以某种方式实现。

我一直在寻找OAuth和一些“hackey”方法,但想知道其他人如何处理这个问题。

2 个答案:

答案 0 :(得分:1)

这是我的建议(你可以用另一种方式做到) 因为您可以将用户分配给我认为的任何服务器

  1. 您需要一个中央数据库来保存您的用户/密码。
  2. 在该用户数据库中,您需要另一个表来定义每个用户的成员资格
  3. 使用spring security对用户进行身份验证。 (您可以在此处使用不同的身份验证机制)
  4. 在每个服务器中添加一个定义服务器编号(ID)的属性文件
  5. 将该资源注入您的春天环境
  6. 代码中的用户声明性授权,以确保用户属于与第4项中提供的服务器ID相同的组

答案 1 :(得分:1)

如果您的架构中有单独的Web服务器和应用程序服务器,那么您可以使用Web服务器的负载平衡功能将用户定向到相应的应用程序服务器。

可以对HTTP请求的各种属性执行负载均衡(这取决于您使用的负载平衡软件),例如HTTP标头,请求参数等。如果您在标头值上进行平衡,则允许您使用用于确定用户所指向的应用服务器的cookie。