1

我对 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,如指南中所述:

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

_security_check:
    pattern: /my/login_check

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

我想我错过了一些东西,希望你能帮忙。
提前致谢!

4

2 回答 2

1

我在symfony 用户邮件组的帮助下解决了这个问题。

于 2011-02-23T10:23:10.460 回答
0

You have to define one firewall (that describes all routes) and determine secure zone using access_control part of settings.

于 2013-09-03T13:52:51.697 回答