php - 使用 access_control 管理 security.yml 中的路由
问题描述
我想 :
/p/{name} ==> 在公共访问中
/profile ==> 在登录访问中
我在security.yml中做了这个
access_control:
- { path: ^/[p]/* , role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/*, role: ROLE_CONNECT }
但是,当我浏览时:
/profile => 可公开访问 ==> KO
/p/name-here => 可公开访问 ==> OK
解决方案
我很确定它将^/[p]/*
匹配以 开头的任何路径/p
,并且您将其作为第一条规则,因此它首先匹配并允许访问。
方括号[]
定义了一组要匹配的字符,你只想匹配一个,所以你不需要它们。表示最后*
匹配零个或多个/
字符,你知道后面会有一个/
,p
所以省略星号。路径是前缀,因此您无需担心路径的可变部分。
试试这个:
- { path: ^/p/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_CONNECT }
推荐阅读
- c++ - 这个递归函数的时间复杂度是多少?
- vb.net - 在没有数据库的 Datagridview 中搜索数据 - VB.net
- javascript - 如何在使用reactjs提交数据时将数字更改为字符串
- gradle - Gradle 无法正确执行外部命令
- c - 给定程序的输出的解释是什么
- javascript - 在 shopify 网站中为数量选择器创建下拉列表
- javascript - 在 Firebase 中实施身份验证的正确方法是什么?
- android - avc:在 Android 10 上使用 uds 时拒绝 { connectto}
- python - 如何替换 BeautifulSoup4 中相似链接中的单词?
- wordpress - Woo commerce Price 未显示正确的价格