0

我写了一个Symfony 3.3没有FOSUserBundle. 典型的流程是以下之一:

  • 控制器 => 服务 => 存储库 => 实体
  • 命令 => 服务 => 存储库 => 实体

最初我将所有isGranteddenyAccessUnlessGranted调用都放在服务中,但是当我使用命令中的服务时,这变得很乱。我通过验证用户来破解命令get('security.token_storage')->setToken($token),但它看起来有点乱。

由于除了“hello world”示例之外我没有找到任何东西,我在这里问这个:

是否有关于在何处执行安全检查的最佳实践?它们应该在控制器和命令内部还是在服务内部?

4

1 回答 1

0

我会在控制器中进行安全检查。假设您有一个控制器操作,它调用某些服务来修改某些实体。该修改只能由特定类型的用户完成。将用户从控制器传递到服务,然后检查用户是否被授权执行某些操作是没有意义的。一开始就剪掉。

于 2017-06-28T17:05:57.413 回答