我正在使用Symfony 3.4应用程序而我正在尝试正确配置我的security.yml来阻止所有未登记用户的网站:
/login
/register
/resseting
还有一个特殊的共享页面(我将提供更多信息)。
这是我的security.yml access_control:
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
我在我的" app"中使用_locale我的routing.yml
中的路线如下:
app:
resource: "@AppBundle/Resources/config/routing.yml"
prefix: /{_locale}/
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
以下是命令bin/console debug:router
的结果(的一部分):
我需要IS_AUTHENTICATED_ANONYMOUSLY
允许的路线为customer_view
(路径:/ {_ locale} / q / {token})
我已尝试过许多不同的路径:
- { path: ^/q/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/%locale%/q/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/q/[a-z]+, role: IS_AUTHENTICATED_ANONYMOUSLY }
- etc .........
我没有在网上找到好的信息,也没有在symfony doc上找到... 有什么帮助吗?
-EDIT -
另外,我担心我可能会使用^/q/
打开evryone的路线,因为" q"可以解释为语言环境?如何在不影响应用程序安全性的情况下完成这项工作?
答案 0 :(得分:0)
我不会使用正则表达式来完成整个路径,而是尝试以下内容。
- { path: ^/(%locales_string%)/customer_view, roles: [IS_AUTHENTICATED_ANONYMOUSLY] }