Symfony2保护所有子域

Mir*_*vic 3 php security routing firewall symfony

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

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

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

但是mydomain.com不应该被重定向.

VHost我这一行:

ServerAlias : *.mydomain.com
Run Code Online (Sandbox Code Playgroud)

我正在使用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
Run Code Online (Sandbox Code Playgroud)

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

访问控制如下所示:

access_control:
    - { path: ^/login,  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { host: ^\.mydomain.com, path: ^/, roles: ROLE_USER }
Run Code Online (Sandbox Code Playgroud)

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

Mir*_*vic 6

解决方案:

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

access_control:
    - { path: ^/login,  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { host: .mydomain.com, path: ^/, roles: ROLE_USER } 
Run Code Online (Sandbox Code Playgroud)