Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 3.3中的安全检查位置_Symfony_Security_Symfony 3.3 - Fatal编程技术网

Symfony 3.3中的安全检查位置

Symfony 3.3中的安全检查位置,symfony,security,symfony-3.3,Symfony,Security,Symfony 3.3,我使用Symfony 3.3编写应用程序,而不使用FOSUserBundle。 典型的流量是: 控制器=>服务=>存储库=>实体 命令=>服务=>存储库=>实体 最初,我将所有isgrated和denyaccessunlessgrated调用放在服务中,但当我使用命令中的服务时,这会变得很混乱。我通过get('security.token\u storage')->setToken($token)对用户进行身份验证,从而入侵了这些命令,但看起来有点混乱 因为除了“hello world”的例

我使用
Symfony 3.3
编写应用程序,而不使用
FOSUserBundle
。 典型的流量是:

  • 控制器=>服务=>存储库=>实体
  • 命令=>服务=>存储库=>实体
最初,我将所有
isgrated
denyaccessunlessgrated
调用放在服务中,但当我使用命令中的服务时,这会变得很混乱。我通过
get('security.token\u storage')->setToken($token)
对用户进行身份验证,从而入侵了这些命令,但看起来有点混乱

因为除了“hello world”的例子之外,我没有发现任何东西,所以我在这里问:


在何处执行安全检查方面是否有最佳做法?它们应该是控制器和命令内部还是服务内部?

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