Symfony2保护所有子域

时间:2014-01-16 13:06:50

标签: php security symfony routing firewall

我正在使用动态子域在Symfony中创建应用程序。

我想确保每个子域都期望www(www不太重要)。

例如:foo.mydomain.com重定向到foo.mydomain.com/login

但不应重定向mydomain.com。

VHost我有这一行:

ServerAlias : *.mydomain.com

我正在使用FOSUserBundle来管理具有自定义UserManager的用户。

防火墙如下所示:

firewalls:
    fos:
        pattern: ^/
        host: ^\.mydomain.com
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            use_referer:                    true
        logout:       true
        anonymous:    ~

    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            use_referer:                    true
        logout:       true
        anonymous:    true

我不确定我是否应该有两个防火墙

访问控制如下所示:

access_control:
    - { path: ^/login,  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { host: ^\.mydomain.com, path: ^/, roles: ROLE_USER }

所以我需要像* .mydomain.com这样的角色ROLE_USER

1 个答案:

答案 0 :(得分:6)

解决方案

.mydomain.com代替^\.mydomain.com

access_control:
    - { path: ^/login,  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { host: .mydomain.com, path: ^/, roles: ROLE_USER }