spring-boot - 如何使用 Spring Boot 提供 2 个不同的 API?
问题描述
我有一个 Spring Boot 应用程序,它提供前端应用程序使用的 API(CRUD 操作)。此 Spring Boot 应用程序基于 oauth2.0 身份验证标准,用于针对授权服务器验证在每个 API 的标头中接收到的 JWT 访问令牌。我想提供另一个 API 供后端使用(M2M 使用)。此 API 将依赖于相同的数据库(相同的实体),但会略有不同(此处仅允许读取操作,并且响应包含更多字段)。此外,这个新 API 将依赖另一个授权服务器来验证 JWT 令牌。
首先,我想为这两个 API 提供相同的 Spring Boot 应用程序,但看起来支持这两个 API 会很困难(例如,令牌的颁发者 uri 不同,端口可以不同,API 的路径不同.. )。
所以,我现在正在考虑将 2 个 APIS 分成 2 个不同的 Spring Boot 应用程序,以便这些应用程序本质上是隔离的,但我不确定这最后是否是一个好习惯?例如,这种设计可能出现的并发问题如何?相反,我可以轻松构建共享相同代码仓库的 2 个 Spring Boot 应用程序(一些代码对于两个应用程序应该是通用的)。这些是我的问题,所以任何建议将不胜感激。
解决方案
您可以尝试使用多个身份验证提供程序。以下给出的示例 - Java Spring Security 配置 - 多个身份验证提供程序
推荐阅读
- python - 将视频从链接上传到 youtube
- amazon-web-services - 如何使用 terraform 添加将多个 aws 目标组添加到多个自动缩放组
- typescript - 开玩笑,我如何模拟一个导出的函数来返回一个 Promise 而不是 undefined?
- python - python在标题下方创建一个意外的空白行
- amazon-web-services - 子网中没有实例的负载均衡器会报错吗?
- django - 如何解决 pg_dump:由于使用 docker 的服务器版本不匹配而中止
- azure-logic-apps - 在 Logic 应用程序中使用 Teams 连接器时出错 - 无法连接 global.consent.azure-apim.net 或 logic-apis-westerurope.consent.azure-apim.net
- haskell - 无法对作为单子的参数使用单子绑定
- amazon-redshift - Redshift Count Number of Inserts/Updates
- python - ERROR: Exit status 1, PySimpleGui - new to python