Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 多个webapps共享的restapi的身份验证_Java_Spring_Spring Boot_Rest_Restful Authentication - Fatal编程技术网

Java 多个webapps共享的restapi的身份验证

Java 多个webapps共享的restapi的身份验证,java,spring,spring-boot,rest,restful-authentication,Java,Spring,Spring Boot,Rest,Restful Authentication,我有三场战争:a.war,b.war和restful.war,它们在同一只雄猫里 war是一个springboot、springmvc项目,它为a.war和b.war提供restful调用 a、 war和b.war是独立的Web应用程序,它们都有自己的登录系统,它们的用户存储在不同的数据库表中,例如a.war的用户存储在tableA中,b.war的用户存储在tableB中 对于a.war和b.war,有两个地方可以称为restful.war: 通过org.apache.http.impl.cli

我有三场战争:a.war,b.war和restful.war,它们在同一只雄猫里

war是一个springboot、springmvc项目,它为a.war和b.war提供restful调用

a、 war和b.war是独立的Web应用程序,它们都有自己的登录系统,它们的用户存储在不同的数据库表中,例如a.war的用户存储在tableA中,b.war的用户存储在tableB中

对于a.war和b.war,有两个地方可以称为restful.war:

通过org.apache.http.impl.client.DefaultHttpClient.execute从a.war、b.war中的java代码调用restful.war的代码 通过ajax从a.war、b.war的html/jsp页面调用restful.war
我想要的是:只有登录a.war或b.war的用户才能调用restful.war,我该怎么做?

在“restful”应用程序中实现基本身份验证,并使用适当的授权头从“a”和“b”调用其端点。因此,这将解决问题,如果“restful”接到来自“a”或“b”的呼叫,它将作出响应,否则将抛出403禁止的错误。

谢谢您的回答。您的意思是使用用户名和密码进行基本身份验证吗?如果是,则为1。如果我没有https怎么办?2.当使用https的基本身份验证时,它的安全性如何。因为a.war和b.war使用不同的用户表,所以如果使用带有用户名和密码的基本authc,那么restful.war需要知道请求来自a或b,以便它可以检查相应的用户表,对吗?第1点和第2点不是问题,您可以在http/https中使用基本auth。我的意思是在restful.war中创建单独的auth机制。然后使用该用户/密码该用户与您在“a”和“b”中使用的用户不同。它从“a”和“b”以“restful”形式维护,以获得身份验证。在“restful”应用程序中应该有一些基于authbasic或令牌的机制。只有“a”和“b”应用程序将使用正确的凭据调用。来自其他地方的任何没有凭据的呼叫都将被拒绝。