在Symfony 3.3中检查安全性的位置

时间:2017-06-28 16:51:19

标签: symfony security symfony-3.3

我使用Symfony 3.3编写了一个没有FOSUserBundle的应用程序。 典型的流程是:

  • Controller =>服务=>存储库=>实体
  • Command =>服务=>存储库=>实体

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

由于我没有找到“hello world”示例之外的任何内容,我在这里问这个:

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

1 个答案:

答案 0 :(得分:0)

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