Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对资源和用户进行分区_Java_Spring_Oauth - Fatal编程技术网

Java 对资源和用户进行分区

Java 对资源和用户进行分区,java,spring,oauth,Java,Spring,Oauth,我正在构建基于spring的系统,其中的需求是A组的用户保存在一组机器中,B组的用户保存在另一组机器中。组A的服务器将只保存这些组用户的数据,而另一个组的数据相同。我目前设想一个身份验证/重定向器服务(登录服务),它将用户重定向到正确的服务器。因此,所有用户都可以登录到login.example.com,并被重定向到a.example.com和b.example.com 问题是,应该能够无缝地将用户从组a迁移到组B,并且如果用户希望属于组a和组B,则必须以某种方式实现 我一直在寻找OAuth和一

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

问题是,应该能够无缝地将用户从组a迁移到组B,并且如果用户希望属于组a和组B,则必须以某种方式实现

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

这是我的建议(你可以用另一种方法来处理) 我假设您可以将用户分配到这些服务器中的任何一个

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

  • 如果您的体系结构中有单独的web服务器和应用程序服务器,那么您可以使用web服务器的负载平衡功能将用户引导到适当的应用程序服务器


    可以对HTTP请求的各种属性(取决于您使用的负载平衡软件)执行负载平衡,例如HTTP头,请求参数等。如果在标头值上保持平衡,则可以使用cookie来确定将用户定向到哪个应用程序服务器。

    当用户更改其组时,如何进行数据迁移?当用户在两个组中时,数据将流向何处?没有用户不能在两个组中。想象一下,你要么在东海岸,要么在西海岸,但决不能两者兼而有之。