使用access_control在security.yml中管理路由

时间:2019-06-05 17:45:04

标签: php symfony access-control

我想要:

  

/ p / {name} ==>在公共访问权限中
   / profile ==>登录登录

我是在 security.yml

中完成此操作的
access_control:
    - { path: ^/[p]/* , role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/*, role: ROLE_CONNECT }

但是,当我浏览时:

/个人资料 =>可以公开访问==> K.O。
/ p / name-此处 =>可以公共访问==> 确定

1 个答案:

答案 0 :(得分:2)

我非常确定 public IActionResult Index() { return View(); } 将匹配以^/[p]/*开头的任何路径,并且您将其作为第一条规则,因此它首先匹配并允许访问。

方括号/p定义了一组要匹配的字符,您只想匹配一个字符就不需要了。 []说要在末尾匹配零个或多个*字符,您知道/之后将有一个/,因此请省略星号。路径是前缀,因此您不必担心路径的可变部分。

尝试一下:

p