我正在开发一个基于 spring-java 的全栈 Web 应用程序。该应用程序当前分为两个项目,每个项目在构建时都会生成一个 war 文件。一个项目(称为 UI)充当应用程序的前端。 UI 中没有太多业务逻辑。主要是HTML模板,还有JS/CSS等资源。另一个项目(称为服务器)在提供身份验证、业务逻辑、数据库服务、外部世界的 REST API 等方面承担着很大的责任。
我遇到了很多问题,特别是在给定 UI 项目的整个应用程序中进行安全工作时,没有直接的方法来验证用户或检查用户角色等。UI 依赖于调用到服务器的 REST OAuth2 密码流来进行验证。因此,身份验证本身工作正常,但我很难检查 UI 项目中任何代码中的用户访问角色或任何其他细粒度权限。
在我深入挖掘并尝试使这一切发挥作用之前,请先向各位专家提出几个问题: a) 这种设计是构建 Web 应用程序可接受的方法之一吗? b) 如果我尝试将这两个项目捆绑在一场 war 中,是否有任何我应该注意的问题?
我希望这是切中要害的,但如果您需要更多详细信息,请告诉我,我很乐意添加颜色。
最佳答案
尝试另一种分离概念:
- 模块 1 = 核心业务逻辑 -> 在构建时生成 jar 文件
- 模块 2 = web -> 在构建时生成 war 文件
模块 2 依赖于模块 1。所有安全内容都转到模块 2。
希望有帮助。
关于java - 我们的全栈 Web 应用架构正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265222/