Regex Symfony-通过正则表达式进行访问控制
因此,我将Symfony 2.6(是的,它很旧,但不允许升级)用于一个项目。目前,我遇到了一个小问题: 如果用户转到 www.url.com/product/G 这应该是允许的,他不需要登录。但是,如果 www.url.com/product/GProduct 他必须登录。然而,为了让Symfony做到这一点,我不知道该怎么做 my security.yml中的行如下所示:Regex Symfony-通过正则表达式进行访问控制,regex,symfony,Regex,Symfony,因此,我将Symfony 2.6(是的,它很旧,但不允许升级)用于一个项目。目前,我遇到了一个小问题: 如果用户转到 www.url.com/product/G 这应该是允许的,他不需要登录。但是,如果 www.url.com/product/GProduct 他必须登录。然而,为了让Symfony做到这一点,我不知道该怎么做 my security.yml中的行如下所示: access_control: - { path: /product/[^A-Z]$, roles: IS_AUT
access_control:
- { path: /product/[^A-Z]$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
此正则表达式应仅匹配一个字符。然而,它没有做它应该做的。我仍然可以访问/product/gpproduct
,而无需登录
我怎样才能做到这一点?我能做到这一点吗?需要:
access_control:
- { path: ^/product/[A-Z]$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
您只能将url与单个大写字符匹配
但如果要保护/product/gpproduct
,则必须添加另一行:
access_control:
- { path: ^/product/GProduct, roles: IS_AUTHENTICATED }
- { path: ^/product/[A-Z]$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
使用static
^/product/gpproduct
或Regex.我认为您需要使用/product/[A-Z]$
来实际允许在末尾使用一个大写字母<代码>[^A-Z]匹配除大写ASCII字母外的1个字符。