Symfony2的安全区域

时间:2011-02-18 12:22:01

标签: php security symfony

我对Symfony2的安全功能有疑问。我想在/my前缀下保护我的应用程序的特殊区域。

我的配置如下:

security.config:
    providers:
        my:
            entity: { class: MyUserBundle:User, property: username }

    firewalls:
        public:
            pattern: /my/login.*
            security: false

        my:
            pattern: /my.*
            form-login:
                check_path: /my/login_check
                login_path: /my/login
            logout: true

    access_control:
        - { path: /my/login.*, roles: IS_AUTHENTICATED_ANONYMOUSLY }

当我尝试访问登录区域时,一切正常,提交表单会导致错误页面,因为_security_check路由没有注册控制器,如guide中所述:

_security_login:
    pattern: /my/login
    defaults: { _controller: MyUserBundle:Auth:login }

_security_check:
    pattern: /my/login_check

我认为通常SecurityBundle会破解这个过程,因此不需要控制器。 Symfony2的配置总是非常复杂。

我想我错过了什么,希望你能帮忙 提前谢谢!

2 个答案:

答案 0 :(得分:1)

我在symfony users mailing group的帮助下解决了这个问题。

答案 1 :(得分:0)

您必须定义一个防火墙(描述所有路由)并使用access_control部分设置确定安全区域。