Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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 使用访问控制管理security.yml中的路由_Php_Symfony_Access Control - Fatal编程技术网

Php 使用访问控制管理security.yml中的路由

Php 使用访问控制管理security.yml中的路由,php,symfony,access-control,Php,Symfony,Access Control,我想: /公共访问中的p/{name}==> /配置文件==>在loggin访问中 我这样做是为了安全 但是,当我浏览时: /个人资料=>可公开访问==>K.O。 /p/name here=>accessible in public==>OK我非常确定^/[p]/*将匹配以/p开头的任何路径,并且您将其作为第一条规则,因此它首先匹配并允许访问 方括号[]定义了一组要匹配的字符,您只想匹配一个字符,这样就不需要它们了。*表示要匹配结尾处的零个或多个/字符,您知道p后面将有一个/,因此省略星号。路径

我想:

/公共访问中的p/{name}==> /配置文件==>在loggin访问中

我这样做是为了安全

但是,当我浏览时:

/个人资料=>可公开访问==>K.O。 /p/name here=>accessible in public==>OK

我非常确定^/[p]/*将匹配以/p开头的任何路径,并且您将其作为第一条规则,因此它首先匹配并允许访问

方括号[]定义了一组要匹配的字符,您只想匹配一个字符,这样就不需要它们了。*表示要匹配结尾处的零个或多个/字符,您知道p后面将有一个/,因此省略星号。路径是一个前缀,因此您不必担心路径的可变部分

试试这个:

- { path: ^/p/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_CONNECT }

请格式化你的问题。对我们来说,K.O.不是一条错误消息。添加路由、完整的security.yml以及转到/profile时收到的错误消息。如果您还可以添加一个与您的symfony版本匹配的标记,那将是完美的。/profile可以在公共场合访问,所以它并不好,因为我只想在用户为loggedIt时使用此路径。我认为composer使用OK表示成功,而KO表示错误KO不好。此外,在这之前,问题已清楚说明。
- { path: ^/p/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_CONNECT }