java - 由多个 webapps 共享的 restapi 的身份验证
问题描述
我有 3 场战争:和a.war
,它们在同一个 tomcat 中。b.war
restful.war
restful.war
是一个 spring boot,spring mvc 项目,它提供了对a.war
和b.war
.
a.war
并且b.war
是独立的webapps,他们都有自己的登录系统,他们的用户存储在不同的数据库表中,例如用户a.war
存储在tableA
,用户b.war
存储在tableB
。
对于a.war
和b.war
,有两个地方可以调用restful.war
:
restful.war
从java代码中调用代码a.war
,b.war
通过org.apache.http.impl.client.DefaultHttpClient.execute()
- 通过 ajax从 html /
restful.war
jsp 页面调用a.war
b.war
我想要的是:只有登录a.war
或b.war
可以打电话的用户,restful.war
我该怎么做?
解决方案
在“restful”应用程序中实现基本身份验证,并使用适当的“授权”标头从“a”和“b”调用其端点。所以这将解决如果“restful”收到来自“a”或“b”的调用的问题,它会响应,否则会抛出 403 禁止错误。
推荐阅读
- python - predict() 方法中的 Tensorflow 数据集抛出错误
- python - FFT后如何获得原始声音?
- javascript - Javascript - 数字数组中的最小值和最大值
- python - 如何修复 VSCode ModuleNotFoundError
- reactjs - 从 submitForm() TypeError 捕获到未处理的错误:尝试向 API 发出发布请求时无法读取未定义的属性“发布”
- python - 客户 选择一个有效的选项。该选择不是可用的选择之一
- javascript - 在 NextJs 中的组件之间共享 props
- java - @QuarkusTest-Annotation + Mockito 导致 ClassLoader 错误
- javascript - 找不到名称“xx”。您是说实例成员“this.xxx”吗?- 这是未定义的
- visual-studio-code - VSCode 不使用 Conda Python