Symfony2中的安全区域

问题描述:

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

我的配置看起来像如下:

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的配置非常复杂。

我想我错过了什么,希望你能帮上忙。
在此先感谢!

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

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