2

我们开发了一个多租户系统,其中客户端由子域标识。每个客户端可以有多个用户。

大多数用户只能访问一个子域,但也有用户可以访问多个子域。用户还可以在每个子域上具有不同的角色。

所以我们需要检查用户在当前子域上是否有任何角色。如果不是,则身份验证应该失败。

其次,如果用户可以访问多个子域,他可以在它们之间切换。在这种情况下,必须从数据库中重新查询用户的角色。

目前,我们使用带有自定义 EntityProvider 的非常 hacky 的解决方案。我对那个很不满意。

PS:系统背后的数据库是遗留数据库,所以我们不能将其更改为使用 ACL 或其他任何东西。

4

1 回答 1

0

在没有看到您的架构的情况下不可能给出细节,但我在这里的回答描述了我如何使用kernel.request侦听器来激活基于请求的子域的学说过滤器。我使用 mongodb,但对于教义 orm 基本相同。

于 2013-04-16T14:59:14.000 回答