Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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 在服务器之间共享REST令牌_Java_Rest_Security_Grails - Fatal编程技术网

Java 在服务器之间共享REST令牌

Java 在服务器之间共享REST令牌,java,rest,security,grails,Java,Rest,Security,Grails,我需要一个具有基于令牌的身份验证的REST API:我们将使用负载平衡器复制应用程序服务器,因为在对用户进行身份验证时,令牌由一台服务器生成,来自同一客户机的不同请求可以由不同的服务器处理,是否有一种通用技术或技术在不同的服务器之间共享这些令牌 关于技术,我们将使用Java堆栈,更具体地说是Grails 关于应用服务器,我们可能有多个数据库。此评论很重要,因为在与同事讨论时,有人建议使用来自所有应用程序服务器的相同数据库来管理令牌共享。我正在寻找一种不需要集中式数据库的解决方案,它可以让我们在数

我需要一个具有基于令牌的身份验证的REST API:我们将使用负载平衡器复制应用程序服务器,因为在对用户进行身份验证时,令牌由一台服务器生成,来自同一客户机的不同请求可以由不同的服务器处理,是否有一种通用技术或技术在不同的服务器之间共享这些令牌

关于技术,我们将使用Java堆栈,更具体地说是Grails


关于应用服务器,我们可能有多个数据库。此评论很重要,因为在与同事讨论时,有人建议使用来自所有应用程序服务器的相同数据库来管理令牌共享。我正在寻找一种不需要集中式数据库的解决方案,它可以让我们在数据库端进行扩展。

使用基于令牌的身份验证时,有一个服务器可以对用户进行身份验证并发出安全令牌。可以通过多种方式验证用户(根据数据库验证用户名/密码、验证智能卡上的证书等)

一旦身份验证服务器发布并签署了令牌,就不需要数据库通信来验证令牌。任何接受令牌的服务都只会验证令牌的数字签名

客户端(服务的调用者)负责将令牌与请求一起发送。因此,无论负载平衡器后面的哪个服务器处理传入请求,它只需要与签名密钥关联的公钥来验证请求是否有效


选择哪个安全协议取决于您的要求。通常用于internet应用程序。而且在企业环境中被大量使用。

据我所知(JSON Web令牌)在grails中是受支持的——这似乎就是您所寻找的。基本上,您需要像在映像中一样分离身份验证服务器。身份验证验证验证正在发送的用户/通行证,并发出一个令牌,该令牌无需进一步访问数据库即可轻松解析。唯一需要共享的是用于解码传入JWT的密钥。请看,它可以工作。

图像上的第二个请求让我困惑,为什么auth服务器返回内容?这不应该由API或应用服务器来处理吗?或者这是使用应用服务器作为身份验证服务器?不知道,这可能是个错误。向作者征求意见。