Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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

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
Php Symfony3中的访问控制不';行不通_Php_Security_Routes_Fosuserbundle_Symfony - Fatal编程技术网

Php Symfony3中的访问控制不';行不通

Php Symfony3中的访问控制不';行不通,php,security,routes,fosuserbundle,symfony,Php,Security,Routes,Fosuserbundle,Symfony,我使用Symfony 3,在app/config/security.yml中使用access\u control时出现问题 我安装了FOSUserBundle,发现当用户具有匿名身份验证的角色时,路由/登录/重置和/注册仍然可用。我使用的基本配置如中所述,但不起作用: access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, role: IS_AUT

我使用Symfony 3,在
app/config/security.yml
中使用
access\u control
时出现问题

我安装了FOSUserBundle,发现当用户具有匿名身份验证的角色时,路由/登录/重置和/注册仍然可用。我使用的基本配置如中所述,但不起作用:

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }
错误是否可能来自另一个文件?我花了一个星期寻找答案,但我不知道问题是从哪里来的。另外,我试图从头开始在另一个项目上重新安装Symfony,只是为了尝试使用新的配置,但出现了相同的错误

谢谢你的帮助


没有任何问题,您访问这些路由是否经过身份验证是很正常的:

是否匿名验证:所有用户(即使是匿名用户)都有 这-在白名单URL以保证访问时非常有用

这是最低级别的角色

但是,如果您希望在访问正在登录的
/login
时被重定向到
/admin
,则可以在管理登录的功能中执行此操作

if ($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')) {
   return $this->redirect($this->generateUrl('your_route_path_to_admin'));
}

默认情况下,即使登录,路由
/login
/restating
/register
也将继续可用

如果您不想这样做,可以做以下几件事:

  • ,并在登录时重定向到某个位置
  • 并且在您已登录时不显示表单

默认情况下,即使在登录时,路由
/login
/restating
/register
也将可用。您所说的接收错误是什么?我没有收到任何错误,我可以成功登录,但是我仍然可以访问这些路由,并且在表单上方显示用户的姓名,并带有一个要注销的链接。换句话说,我可以重新登录…到底是什么问题?听起来好像没有什么问题,因为你说当设置为“匿名”时可以访问这些路由,这是正确的……也许我的英语有点混乱,因为我是法国人。我想说的是,当我登录时,我不应该访问这些路径。我还附上了一个截图给你看。