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

authentication for restapi which shared by multiple webapps

我有3场战争:a.warb.warrestful.war,它们在同一个tomcat。

restful.war 是一个 spring 引导,spring mvc 项目,它提供 restful 对 a.warb.war 的调用。

a.warb.war是独立的webapps,它们都有自己的登录系统,它们的用户存储在不同的数据库表中,例如a.war 的用户存储在 tableAb.war 的用户存储在 tableB

对于a.warb.war,有两个地方可以调用restful.war

  1. 通过 org.apache.http.impl.client.DefaultHttpClient.execute()
  2. a.warb.war 中的 java 代码调用 restful.war 的代码
  3. 通过 ajax
  4. a.warb.war 的 html/jsp 页调用 restful.war

我想要的是:只有登录a.warb.war的用户才能调用restful.war,我该怎么做?

在 'restful' 应用程序中实施基本身份验证,并使用适当的 "Authorization" header 从 'a' 和 'b' 调用其端点。 所以这将解决以下问题:如果 'restful' 收到来自 'a' 或 'b' 的调用,它会响应,否则会抛出 403 forbidden 错误。