由多个 webapps 共享的 restapi 的身份验证
authentication for restapi which shared by multiple webapps
我有3场战争:a.war
、b.war
和restful.war
,它们在同一个tomcat。
restful.war
是一个 spring 引导,spring mvc 项目,它提供 restful 对 a.war
和 b.war
的调用。
a.war
和b.war
是独立的webapps,它们都有自己的登录系统,它们的用户存储在不同的数据库表中,例如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' 应用程序中实施基本身份验证,并使用适当的 "Authorization" header 从 'a' 和 'b' 调用其端点。 所以这将解决以下问题:如果 'restful' 收到来自 'a' 或 'b' 的调用,它会响应,否则会抛出 403 forbidden 错误。
我有3场战争:a.war
、b.war
和restful.war
,它们在同一个tomcat。
restful.war
是一个 spring 引导,spring mvc 项目,它提供 restful 对 a.war
和 b.war
的调用。
a.war
和b.war
是独立的webapps,它们都有自己的登录系统,它们的用户存储在不同的数据库表中,例如a.war
的用户存储在 tableA
,b.war
的用户存储在 tableB
。
对于a.war
和b.war
,有两个地方可以调用restful.war
:
- 通过
org.apache.http.impl.client.DefaultHttpClient.execute()
从 - 通过 ajax 从
a.war
、b.war
中的 java 代码调用 restful.war
的代码
a.war
、b.war
的 html/jsp 页调用 restful.war
我想要的是:只有登录a.war
或b.war
的用户才能调用restful.war
,我该怎么做?
在 'restful' 应用程序中实施基本身份验证,并使用适当的 "Authorization" header 从 'a' 和 'b' 调用其端点。 所以这将解决以下问题:如果 'restful' 收到来自 'a' 或 'b' 的调用,它会响应,否则会抛出 403 forbidden 错误。