Symfony2安全性允许所有URL而不阻止任何内容

时间:2013-08-05 22:00:15

标签: security symfony

我正在尝试在Symfony中启动并运行非常基本的安全性。我的security.yml文件中包含以下代码段。

firewalls:
    secured_area:
        pattern:    ^/
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path:   /logout
            target: /
        anonymous: ~
        #http_basic:
        #    realm: "Secured Demo Area"

access_control:
    - { path: ^/new, roles: ROLE_USER }
    - { path: ^/create, roles: ROLE_USER }

但是,我仍然可以访问以下网址:http://events.local/app_dev.php/event/new,但未经过身份验证。有什么想法可能会发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

^/new/event/new不匹配,因为^表示/new必须是路径的开头。

尝试^/event/new,我认为您的问题将得到解决。

来自http://symfony.com/doc/current/book/security.html

  

使用^预先添加路径可确保仅匹配以模式开头的URL。例如,简单/ admin(没有^)的路径将正确匹配/ admin / foo,但也会匹配/ foo / admin等网址。