0

我试图了解 Spring Security 在三层架构中的工作原理。

假设系统由以下部分组成:
WEB<--> APP<-->DB

并且用户是在DB层中定义的。

我将如何在应用程序中实现它?
据我了解,我应该执行以下操作:

  1. WEB在层中创建我自己的身份验证提供程序。
  2. 身份验证提供程序将调用APP层上的服务以实际验证针对数据库的凭据。
  3. 用户通过WEB层上的 Spring Security 模块后,不再进行身份验证,每个WEB-->APP调用实际上都是unauthenticated

最后一个项目符号对我来说毫无意义 - 所以我认为我错过了文档中的某些内容。

我的问题 - 这是在三层网络应用程序中实现安全性的 Spring 方式吗?或者,还有更好的方法?

4

1 回答 1

0

这很标准。将大部分身份验证逻辑保留在其中,APPWEB成为客户端/提供者。

在进行呼叫后,进一步的呼叫不是未经身份验证的,身份验证使用会话保留。只要您在安全 xml 中声明所有端点都需要身份验证,那么除非用户已通过身份验证,否则无法访问任何端点(如果未通过身份验证或登录已过期,则将被踢出到指定的路径) .

而且我还认为,像这样的横切关注点从 3 层的角度思考并不适用。该DB部分是无关紧要的,另一个部分是为了可重用性目的,这相当于分离存储库和集成。

于 2012-09-11T11:24:33.457 回答